Function at 0x14003d920
Capabilities:
Encode data using base64

Disassembly:
xor edx, edx
jmp 0x140076210
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
movaps xmmword [rsp + 0xc0], xmm7
movaps xmmword [rsp + 0xb0], xmm6
mov r13, rdx
mov r15, rcx
mov rax, qword [0x140213038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov rdx, qword [rcx + 0x18]
sub rdx, qword [rcx + 0x10]
sar rdx, 3
movabs rax, 0xaaaaaaaaaaaaaaab
imul rdx, rax
dec rdx
lea rbx, [rsp + 0x80]
mov rcx, rbx
call fcn.1400db7e0
movzx eax, byte [rbx + 0x17]
test al, al
jns 0x140076290
mov rbx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
cmp rcx, 1
sbb edx, edx
not edx
or edx, eax
cmp edx, 4
mov ebp, 4
cmovb ebp, edx
lea rcx, [0x140215870]
mov rdx, rbx
mov r8, rbp
call fcn.140103960
lea rcx, [0x140215850]
mov edx, ebp
call fcn.1400e3820
cmp byte [rsp + 0x97], 0
js 0x140076e25
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
sub rcx, rax
sar rcx, 3
movabs rdx, 0xaaaaaaaaaaaaaaab
imul rcx, rdx
xor r14d, r14d
cmp rcx, 2
jb 0x140076a8d
movaps xmm6, xmmword [0x1401d9dd0]
lea rsi, [rsp + 0x60]
xorps xmm7, xmm7
mov r12d, 1
lea rcx, [r12 + r12*2]
movabs rdx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rdx
movaps xmmword [rsp + 0x60], xmm6
cmp byte [rax + rcx*8 + 0x17], 0
jns 0x140076340
mov rdx, qword [rax + rcx*8]
jmp 0x140076344
lea rdx, [rax + rcx*8]
mov qword [rsp + 0x50], rdx
movzx edx, byte [rax + rcx*8 + 0x17]
test dl, dl
jns 0x140076357
mov rdx, qword [rax + rcx*8 + 8]
mov qword [rsp + 0x58], rdx
mov rcx, rsi
lea rdx, [rsp + 0x50]
call fcn.1400dd930
test r13, r13
je 0x14007637c
mov rcx, rsi
call r13
test al, al
jne 0x140076664
mov eax, dword [0x14021d608]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007694e
cmp r14, qword [0x14021d600]
jb 0x1400765ab
mov eax, dword [0x14021d640]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400766b9
lea r8, [r14 + 1]
lea rcx, [rsp + 0x80]
lea rdx, str.switch__Iu
call fcn.1400dce20
mov rax, qword [0x14021d620]
mov rbp, qword [0x14021d618]
mov rcx, rax
sub rcx, rbp
mov rdx, rcx
sar rdx, 3
imul rdx, rdx, 0xaa
dec rdx
test rcx, rcx
cmove rdx, rcx
mov rcx, qword [0x14021d638]
add rcx, qword [0x14021d630]
cmp rdx, rcx
je 0x1400766f8
cmp rax, rbp
je 0x140076e0f
mov rax, rcx
movabs rdx, 0xc0c0c0c0c0c0c0c1
mul rdx
shr rdx, 7
imul rax, rdx, 0xaa
sub rcx, rax
lea rax, [rcx + rcx*2]
shl rax, 3
add rax, qword [rbp + rdx*8]
mov rcx, qword [rsp + 0x90]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rax], xmm0
inc qword [0x14021d638]
mov eax, dword [0x14021d608]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400769cc
mov rax, qword [0x14021d638]
mov rcx, qword [0x14021d630]
add rcx, rax
dec rcx
mov rbp, qword [0x14021d618]
mov rax, rcx
movabs rdx, 0xc0c0c0c0c0c0c0c1
mul rdx
shr rdx, 7
mov rax, qword [rbp + rdx*8]
imul rdx, rdx, 0xaa
sub rcx, rdx
lea rcx, [rcx + rcx*2]
lea rbx, [rax + rcx*8]
cmp byte [rbx + 0x17], 0
js 0x140076e16
mov rsi, qword [0x14021d5e8]
mov rcx, qword [0x14021d5e0]
mov rax, rsi
sub rax, rcx
mov rdx, rax
sar rdx, 3
imul rdx, rdx, 0x2a
dec rdx
test rax, rax
cmove rdx, rax
mov rbp, qword [0x14021d600]
add rbp, qword [0x14021d5f8]
cmp rdx, rbp
je 0x140076725
cmp rsi, rcx
je 0x140076e1e
mov rax, rbp
shr rax, 1
movabs rdx, 0xc30c30c30c30c30d
mul rdx
shr rdx, 4
imul rax, rdx, 0x2a
sub rbp, rax
lea rax, [rbp*2]
add rax, rbp
shl rax, 5
add rax, qword [rcx + rdx*8]
lea rsi, [rsp + 0x60]
lea rcx, [rax + 0x20]
mov qword [rax], 0
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rcx
mov dword [rax + 0x18], 0
mov word [rax + 0x1c], 1
movups xmmword [rax + 0x20], xmm7
movups xmmword [rax + 0x30], xmm7
movups xmmword [rax + 0x40], xmm7
movups xmmword [rax + 0x50], xmm7
inc qword [0x14021d600]
mov eax, dword [0x14021d608]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007698d
mov rcx, qword [0x14021d5f8]
add rcx, r14
mov rbp, qword [0x14021d5e0]
mov rax, rcx
shr rax, 1
movabs rdx, 0xc30c30c30c30c30d
mul rdx
shr rdx, 4
mov rax, qword [rbp + rdx*8]
imul rdx, rdx, 0x2a
sub rcx, rdx
movzx edi, byte [rsp + 0x77]
mov rdx, rsi
test dil, dil
jns 0x14007661b
mov rdx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
inc r14
mov rbx, rdi
shr rbx, 0x20
cmp rbx, 1
mov ebp, 0
sbb ebp, ebp
not ebp
or ebp, edi
cmp ebp, 0x40
mov ebx, 0x40
cmovae ebp, ebx
lea rcx, [rcx + rcx*2]
shl rcx, 5
lea rbx, [rax + rcx]
add rcx, rax
add rcx, 0x20
mov r8, rbp
call fcn.140103960
mov rcx, rbx
mov edx, ebp
call fcn.1400e3820
cmp byte [rsp + 0x77], 0
jns 0x140076675
mov rcx, qword [rsp + 0x60]
call fcn.140100564
inc r12
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
sub rcx, rax
sar rcx, 3
movabs rdx, 0xaaaaaaaaaaaaaaab
imul rcx, rdx
cmp r12, rcx
jb 0x14007631b
jmp 0x140076a8d
mov rdi, qword [rsi + rdx]
mov qword [rcx + rdx], rdi
add rdx, 8
cmp rbp, rdx
jne 0x1400766a3
jmp 0x140076b95
lea rcx, [0x14021d640]
call fcn.140100680
cmp dword [0x14021d640], 0xffffffff
jne 0x1400763d3
movups xmmword [0x14021d630], xmm7
movups xmmword [0x14021d620], xmm7
movups xmmword [0x14021d610], xmm7
lea rcx, [0x14021d640]
call fcn.140100718
jmp 0x1400763d3
lea rcx, [0x14021d610]
call fcn.1400279a0
mov rcx, qword [0x14021d630]
mov rbp, qword [0x14021d618]
mov rax, qword [0x14021d620]
add rcx, qword [0x14021d638]
jmp 0x14007642e
mov rax, qword [0x14021d5f8]
cmp rax, 0x2a
jb 0x140076793
add rax, 0xffffffffffffffd6
mov qword [0x14021d5f8], rax
mov rsi, qword [0x14021d5e0]
mov rdi, qword [rsi]
add rsi, 8
mov qword [0x14021d5e0], rsi
mov rbp, qword [0x14021d5e8]
cmp rbp, qword [0x14021d5f0]
je 0x140076a0b
mov qword [rbp], rdi
add qword [0x14021d5e8], 8
mov rbp, qword [0x14021d5f8]
mov rcx, qword [0x14021d5e0]
mov rsi, qword [0x14021d5e8]
add rbp, qword [0x14021d600]
jmp 0x140076535
mov qword [rsp + 0x38], r15
mov r15, qword [0x14021d5e8]
mov rdi, qword [0x14021d5e0]
mov rbp, r15
sub rbp, rdi
mov rcx, qword [0x14021d5f0]
mov rax, rcx
sub rax, qword [0x14021d5d8]
cmp rbp, rax
mov qword [rsp + 0x40], r13
jb 0x140076be4
mov r13, rax
sar r13, 2
test rax, rax
mov eax, 1
cmove r13, rax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
lea rax, [0x14021d5f8]
mov qword [rsp + 0xa0], rax
mov rax, r13
shr rax, 0x3d
jne 0x140076f81
mov rsi, rbp
sar rsi, 3
lea rcx, [r13*8]
call fcn.140100528
mov qword [rsp + 0x80], rax
add rbp, rax
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x28], rax
lea rax, [rax + r13*8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x98], rax
mov ecx, 0xfc0
call fcn.140100528
cmp rsi, r13
je 0x140076ea6
mov r13, qword [rsp + 0x40]
mov rsi, rdi
mov r8, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov qword [rbp], rax
lea rax, [rbp + 8]
mov qword [rsp + 0x90], rax
mov rdx, rsi
cmp r15, rsi
je 0x1400768cd
add r15, 0xfffffffffffffff8
lea rcx, [rsp + 0x80]
mov rdx, r15
call fcn.140138e90
cmp r15, qword [0x14021d5e0]
jne 0x140076886
mov r8, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
mov rsi, qword [0x14021d5e8]
mov rax, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov rdx, r15
mov rcx, qword [0x14021d5d8]
mov qword [0x14021d5d8], r8
mov qword [rsp + 0x80], rcx
mov qword [0x14021d5e0], rbp
mov qword [rsp + 0x88], rdx
mov qword [0x14021d5e8], rax
mov qword [rsp + 0x90], rsi
mov rax, qword [0x14021d5f0]
mov qword [0x14021d5f0], rdi
mov qword [rsp + 0x98], rax
mov rax, rsi
sub rax, rdx
je 0x140076936
add rax, 0xfffffffffffffff8
shr rax, 3
not rax
lea rax, [rsi + rax*8]
mov qword [rsp + 0x90], rax
test rcx, rcx
mov r15, qword [rsp + 0x38]
je 0x140076772
call fcn.140100564
jmp 0x140076772
lea rcx, [0x14021d608]
call fcn.140100680
cmp dword [0x14021d608], 0xffffffff
jne 0x1400763a1
movups xmmword [0x14021d5f8], xmm7
movups xmmword [0x14021d5e8], xmm7
movups xmmword [0x14021d5d8], xmm7
lea rcx, [0x14021d608]
call fcn.140100718
jmp 0x1400763a1
lea rcx, [0x14021d608]
call fcn.140100680
cmp dword [0x14021d608], 0xffffffff
jne 0x1400765d0
movups xmmword [0x14021d5f8], xmm7
movups xmmword [0x14021d5e8], xmm7
movups xmmword [0x14021d5d8], xmm7
lea rcx, [0x14021d608]
call fcn.140100718
jmp 0x1400765d0
lea rcx, [0x14021d608]
call fcn.140100680
cmp dword [0x14021d608], 0xffffffff
jne 0x1400764a5
movups xmmword [0x14021d5f8], xmm7
movups xmmword [0x14021d5e8], xmm7
movups xmmword [0x14021d5d8], xmm7
lea rcx, [0x14021d608]
call fcn.140100718
jmp 0x1400764a5
mov qword [rsp + 0x38], r15
mov rcx, qword [0x14021d5d8]
mov rax, rsi
sub rax, rcx
jbe 0x140076afd
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov r15, rax
neg r15
shl rax, 3
mov rcx, rsi
sub rcx, rax
sub rbp, rsi
je 0x140076a6e
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x28]
mov rdx, rsi
mov r8, rbp
call fcn.140103960
mov rcx, qword [rsp + 0x28]
mov rsi, qword [0x14021d5e0]
add rbp, rcx
mov qword [0x14021d5e8], rbp
lea rax, [rsi + r15*8]
mov qword [0x14021d5e0], rax
mov r15, qword [rsp + 0x38]
jmp 0x140076766
lea rsi, [0x14021d608]
xorps xmm6, xmm6
mov eax, dword [0x14021d608]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140076c46
cmp r14, qword [0x14021d600]
jb 0x140076e37
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.1401013e0
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x30], rdi
mov rax, rbp
mov qword [rsp + 0x28], rcx
sub rax, rcx
mov r15, rax
sar r15, 2
test rax, rax
mov eax, 1
cmove r15, rax
mov rax, r15
shr rax, 0x3d
jne 0x140076f81
mov rdi, r15
shr rdi, 2
lea rcx, [r15*8]
call fcn.140100528
lea r9, [rax + rdi*8]
mov rdx, rbp
sub rdx, rsi
lea r8, [r9 + rdx]
mov rcx, r9
test rdx, rdx
je 0x140076b98
mov rcx, 0xffffffffffffffff
cmovns rcx, rdx
test rcx, rcx
mov r11, rbp
mov ebp, 1
cmovg rcx, rbp
mov rbp, rsi
sub rbp, r11
cmp rdx, rbp
cmovg rbp, rdx
shr rbp, 3
imul rbp, rcx
shl rbp, 3
lea rcx, [rax + rdi*8]
xor edx, edx
jmp 0x1400766a3
mov rcx, r8
lea rdx, [rax + r15*8]
mov qword [0x14021d5d8], rax
mov qword [0x14021d5e0], r9
mov qword [0x14021d5e8], rcx
mov qword [0x14021d5f0], rdx
mov rbp, rcx
mov rcx, qword [rsp + 0x28]
test rcx, rcx
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
je 0x140076766
call fcn.140100564
mov rbp, qword [0x14021d5e8]
jmp 0x140076766
cmp rcx, r15
jne 0x140076c7d
mov ecx, 0xfc0
call fcn.140100528
mov qword [rsp + 0x80], rax
lea rcx, [0x14021d5d8]
lea rdx, [rsp + 0x80]
call fcn.140138e90
mov r15, qword [0x14021d5e0]
mov rdi, qword [r15]
add r15, 8
mov qword [0x14021d5e0], r15
mov rbp, qword [0x14021d5e8]
cmp rbp, qword [0x14021d5f0]
je 0x140076cad
mov qword [rbp], rdi
add qword [0x14021d5e8], 8
jmp 0x140076ca3
mov rcx, rsi
call fcn.140100680
cmp dword [0x14021d608], 0xffffffff
jne 0x140076abc
movups xmmword [0x14021d5f8], xmm6
movups xmmword [0x14021d5e8], xmm6
movups xmmword [0x14021d5d8], xmm6
mov rcx, rsi
call fcn.140100718
jmp 0x140076abc
mov ecx, 0xfc0
call fcn.140100528
mov qword [rsp + 0x80], rax
lea rcx, [0x14021d5d8]
lea rdx, [rsp + 0x80]
call fcn.140138d20
mov r15, qword [rsp + 0x38]
jmp 0x140076772
mov rcx, qword [0x14021d5d8]
mov rax, r15
sub rax, rcx
jbe 0x140076d1a
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov r13, rax
neg r13
shl rax, 3
mov rsi, r15
sub rsi, rax
sub rbp, r15
je 0x140076cfb
mov rcx, rsi
mov rdx, r15
mov r8, rbp
call fcn.140103960
mov r15, qword [0x14021d5e0]
add rbp, rsi
mov qword [0x14021d5e8], rbp
lea rax, [r15 + r13*8]
mov qword [0x14021d5e0], rax
mov r13, qword [rsp + 0x40]
jmp 0x140076c38
mov rax, rbp
mov qword [rsp + 0x28], rcx
sub rax, rcx
mov rcx, rax
sar rcx, 2
test rax, rax
mov edx, 1
cmovne rdx, rcx
mov rax, rdx
shr rax, 0x3d
jne 0x140076f81
mov rsi, rdx
shr rsi, 2
mov qword [rsp + 0x30], rdx
lea rcx, [rdx*8]
call fcn.140100528
mov r10, rsi
lea rcx, [rax + rsi*8]
mov rsi, rbp
sub rsi, r15
lea r8, [rcx + rsi]
mov rdx, rcx
test rsi, rsi
je 0x140076dc8
mov r9, rdi
mov rdx, 0xffffffffffffffff
cmovns rdx, rsi
test rdx, rdx
mov edi, 1
cmovle rdi, rdx
mov rdx, r15
sub rdx, rbp
cmp rsi, rdx
cmovg rdx, rsi
shr rdx, 3
imul rdx, rdi
shl rdx, 3
lea rbp, [rax + r10*8]
xor esi, esi
mov rdi, qword [r15 + rsi]
mov qword [rbp + rsi], rdi
add rsi, 8
cmp rdx, rsi
jne 0x140076db0
mov rdx, r8
mov rdi, r9
mov rbp, qword [rsp + 0x30]
lea rbp, [rax + rbp*8]
mov qword [0x14021d5d8], rax
mov qword [0x14021d5e0], rcx
mov qword [0x14021d5e8], rdx
mov qword [0x14021d5f0], rbp
mov rbp, rdx
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140076c38
call fcn.140100564
mov rbp, qword [0x14021d5e8]
jmp 0x140076c38
xor eax, eax
jmp 0x140076462
mov rbx, qword [rbx]
jmp 0x1400764f5
xor eax, eax
jmp 0x14007656f
mov rcx, qword [rsp + 0x80]
call fcn.140100564
jmp 0x1400762dc
mov eax, dword [0x14021d608]
mov ecx, dword [0x140216fcc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140076f96
mov rcx, qword [0x14021d5f8]
lea rax, [r14 + rcx]
mov rbp, qword [0x14021d5e0]
shr rax, 1
movabs rdx, 0xc30c30c30c30c30d
mul rdx
shr rdx, 4
imul rax, rdx, 0x2a
sub rcx, rax
add rcx, r14
lea rcx, [rcx + rcx*2]
shl rcx, 5
add rcx, qword [rbp + rdx*8]
call fcn.1400e3840
inc r14
jmp 0x140076a97
mov qword [rsp + 0x48], rax
mov rax, rbp
sub rax, qword [rsp + 0x28]
jbe 0x140076ef6
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
shl rax, 2
and rax, 0xfffffffffffffff8
sub rbp, rax
mov qword [rsp + 0x88], rbp
mov r13, qword [rsp + 0x40]
mov rsi, rdi
mov r8, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
jmp 0x14007686e
mov rcx, rax
sar rcx, 2
test rax, rax
mov esi, 1
cmovne rsi, rcx
movabs rax, 0x1fffffffffffffff
cmp rsi, rax
ja 0x140076f81
mov rbp, rsi
and rbp, 0xfffffffffffffffc
lea rcx, [rsi*8]
call fcn.140100528
mov r13, rax
lea rbp, [rax + rbp*2]
lea rax, [rax + rsi*8]
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x98], rax
cmp qword [rsp + 0x28], 0
je 0x140076f86
mov rcx, qword [rsp + 0x28]
call fcn.140100564
mov r15, qword [0x14021d5e8]
mov rsi, qword [0x14021d5e0]
mov r8, r13
mov r13, qword [rsp + 0x40]
jmp 0x140076ee7
call fcn.1401143a0
mov r8, r13
mov r13, qword [rsp + 0x40]
mov rsi, rdi
jmp 0x140076ee7
lea rcx, [0x14021d608]
call fcn.140100680
cmp dword [0x14021d608], 0xffffffff
jne 0x140076e5c
xorps xmm0, xmm0
movups xmmword [0x14021d5f8], xmm0
movups xmmword [0x14021d5e8], xmm0
movups xmmword [0x14021d5d8], xmm0
lea rcx, [0x14021d608]
call fcn.140100718
jmp 0x140076e5c