Function at 0x1400012bc
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc8
and qword [rbp + 0x6f], 0
xorps xmm0, xmm0
movaps xmmword [rax - 0x58], xmm6
mov r13, rcx
movaps xmmword [rax - 0x68], xmm7
xorps xmm6, xmm6
movaps xmmword [rax - 0x78], xmm8
xorps xmm7, xmm7
movaps xmmword [rax - 0x88], xmm9
xorps xmm8, xmm8
xor eax, eax
movaps xmmword [rsp + 0x70], xmm10
mov qword [rbp - 0x49], rax
xorps xmm9, xmm9
movups xmmword [rbp - 0x79], xmm0
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm0
cmp rdx, 3
jb 0x14000133b
cmp byte [rcx], 0xef
jne 0x14000133b
cmp byte [rcx + 1], 0xbb
jne 0x14000133b
cmp byte [rcx + 2], 0xbf
jne 0x14000133b
add r13, 3
sub rdx, 3
lea r10, [rdx + r13]
mov r11d, 4
mov qword [rbp + 0x7f], r10
lea rax, [rbp - 0x75]
mov ecx, r11d
mov byte [rax], 0xff
inc rax
sub rcx, 1
jne 0x140001350
lea rax, [rbp - 0x71]
mov rcx, r11
mov byte [rax], 0xff
inc rax
sub rcx, 1
jne 0x140001363
movsd xmm10, qword [0x140005b90]
lea r15d, [rcx + 1]
mov eax, 0xfffffff8
mov dword [rbp - 0x51], r15d
add dword [rbp - 0x75], eax
add dword [rbp - 0x71], eax
xor r12d, r12d
mov qword [rbp - 0x49], r13
and qword [rbp + 0x77], r12
xor r14d, r14d
xor r9d, r9d
mov rsi, r13
mov qword [rbp + 0x67], r9
lea ebx, [r12 + 8]
cmp rsi, r10
jne 0x1400013b2
xor dil, dil
jmp 0x1400013b5
mov dil, byte [rsi]
test bl, 0x20
je 0x1400016ac
test dil, dil
je 0x140001e53
cmp r14d, dword [rbp - 0x75]
ja 0x140001e53
test bl, 0x10
je 0x140001670
and ebx, 0xffffffef
movsx ecx, dil
sub ecx, 0x62
je 0x14000165e
sub ecx, r11d
je 0x140001652
sub ecx, 8
je 0x140001646
sub ecx, r11d
je 0x14000163a
sub ecx, 2
je 0x14000162e
cmp ecx, 1
jne 0x140001731
mov rax, r10
sub rax, rsi
cmp rax, r11
jle 0x140001e53
mov cl, byte [rsi + 1]
call fcn.140001108
mov r11b, al
cmp al, 0xff
je 0x140001e53
mov cl, byte [rsi + 2]
call fcn.140001108
movzx edi, al
cmp dil, 0xff
je 0x140001e53
mov cl, byte [rsi + 3]
call fcn.140001108
mov r10b, al
cmp al, 0xff
je 0x140001e53
add rsi, 4
mov cl, byte [rsi]
call fcn.140001108
cmp al, 0xff
je 0x140001e53
movzx eax, al
shl r11b, 4
shl r10b, 4
movzx r8d, r11b
or r8d, edi
movzx ecx, r10b
shl r8d, 8
or r8d, ecx
or r8d, eax
mov eax, r8d
and eax, 0xf800
cmp eax, 0xd800
jne 0x14000154a
mov rax, qword [rbp + 0x7f]
sub rax, rsi
cmp rax, 6
jle 0x140001e53
cmp byte [rsi + 1], 0x5c
jne 0x140001e53
cmp byte [rsi + 2], 0x75
jne 0x140001e53
mov cl, byte [rsi + 3]
call fcn.140001108
cmp al, 0xff
je 0x140001e53
mov cl, byte [rsi + 4]
call fcn.140001108
movzx edi, al
cmp dil, 0xff
je 0x140001e53
mov cl, byte [rsi + 5]
call fcn.140001108
mov r11b, al
cmp al, 0xff
je 0x140001e53
add rsi, 6
mov cl, byte [rsi]
call fcn.140001108
movzx r10d, al
cmp r10b, 0xff
je 0x140001e53
and r8d, 0x3bf
shl r11b, 4
mov ecx, r8d
movzx eax, r11b
shl ecx, 0xa
mov edx, edi
and edx, 3
bts edx, 8
shl edx, 8
mov r8d, edx
or r8d, ecx
or r8d, eax
or r8d, r10d
cmp r8d, 0x7f
ja 0x140001561
test r15d, r15d
jne 0x140001559
mov byte [r14 + r12], r8b
inc r14d
jmp 0x1400018dc
mov r11d, 4
cmp r8d, 0x7ff
ja 0x1400015a2
test r15d, r15d
je 0x14000157e
add r14d, 2
jmp 0x140001e24
mov ecx, r8d
inc r14d
shr ecx, 6
or cl, 0xc0
mov byte [r14 + r12], cl
and r8b, 0x3f
inc r14d
or r8b, 0x80
mov byte [r14 + r12], r8b
jmp 0x140001e24
cmp r8d, 0xffff
ja 0x1400015da
test r15d, r15d
je 0x1400015b9
add r14d, 3
jmp 0x140001e24
inc r14d
mov ecx, r8d
shr ecx, 0xc
or cl, 0xe0
mov byte [r14 + r12], cl
mov ecx, r8d
shr ecx, 6
inc r14d
and cl, 0x3f
or cl, 0x80
jmp 0x14000158a
test r15d, r15d
je 0x1400015e7
add r14d, r11d
jmp 0x140001e24
inc r14d
mov ecx, r8d
shr ecx, 0x12
mov dl, 0x3f
or cl, 0xf0
mov dil, 0x80
mov byte [r14 + r12], cl
inc r14d
mov ecx, r8d
shr ecx, 0xc
and cl, dl
or cl, dil
mov byte [r14 + r12], cl
mov ecx, r8d
shr ecx, 6
inc r14d
and cl, dl
and r8b, dl
or cl, dil
mov byte [r14 + r12], cl
inc r14d
or r8b, dil
jmp 0x140001599
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], 9
jmp 0x140001668
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], 0xd
jmp 0x140001668
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], 0xa
jmp 0x140001668
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], 0xc
jmp 0x140001668
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], 8
inc r14d
jmp 0x140001e24
cmp dil, 0x5c
jne 0x14000167e
or ebx, 0x10
jmp 0x140001e24
cmp dil, 0x22
jne 0x140001731
test r15d, r15d
jne 0x140001691
mov byte [r14 + r12], r15b
mov ecx, dword [r9 + 8]
and ebx, 0xffffffdf
xor r12d, r12d
sub ecx, 1
je 0x1400016ed
cmp ecx, r11d
jne 0x1400016ac
mov dword [r9 + 0x10], r14d
or ebx, 1
mov r8d, ebx
test bl, bl
jns 0x140001743
test dil, dil
je 0x140001e34
movsx ecx, dil
sub ecx, 9
je 0x140001e24
sub ecx, 1
je 0x140001e24
sub ecx, 3
je 0x140001e24
cmp ecx, 0x13
jne 0x140001e53
jmp 0x140001e24
test r15d, r15d
je 0x1400016fc
lea ecx, [r14 + 1]
add qword [r9 + 0x18], rcx
jmp 0x140001729
mov eax, dword [r9 + 0x10]
mov rcx, qword [r9 + 0x18]
lea rdx, [rax + rax*2]
mov rax, qword [r9 + 0x20]
mov qword [rcx + rdx*8], rax
mov eax, dword [r9 + 0x10]
lea rcx, [rax + rax*2]
mov rax, qword [r9 + 0x18]
mov dword [rax + rcx*8 + 8], r14d
lea ecx, [r14 + 1]
add qword [r9 + 0x20], rcx
or ebx, 0x48
jmp 0x140001e24
test r15d, r15d
jne 0x140001668
mov byte [r14 + r12], dil
jmp 0x140001668
test bl, 8
je 0x140001a9a
movsx edx, dil
mov ecx, edx
sub ecx, 9
je 0x140001e24
sub ecx, 1
je 0x140001e24
sub ecx, 3
je 0x140001e24
sub ecx, 0x13
je 0x140001e24
cmp ecx, 0x3d
je 0x140001a7e
test r11b, bl
je 0x140001796
cmp dil, 0x2c
jne 0x140001e53
and ebx, 0xfffffffb
jmp 0x140001e24
test bl, 0x40
je 0x1400017ad
cmp dil, 0x3a
jne 0x140001e53
and ebx, 0xffffffbf
jmp 0x140001e24
and ebx, 0xfffffff7
cmp dil, 0x22
je 0x140001a46
cmp dil, 0x5b
je 0x140001a19
cmp dil, 0x66
je 0x1400019a2
cmp dil, 0x6e
je 0x140001963
cmp dil, 0x74
je 0x1400018e7
cmp dil, 0x7b
je 0x1400018ab
lea eax, [rdx - 0x30]
cmp eax, 9
ja 0x1400017f9
test dil, dil
jne 0x140001803
cmp dil, 0x2d
jne 0x140001e53
lea r9, [rbp + 0x6f]
mov dword [rsp + 0x20], 3
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
mov r15d, dword [rbp - 0x51]
mov rsi, qword [rbp - 0x49]
test r15d, r15d
jne 0x140001879
mov r10, qword [rbp + 0x7f]
movsx eax, dil
add eax, 0xffffffd0
cmp eax, 9
ja 0x14000184a
test dil, dil
jne 0x140001864
sub dil, 0x2b
cmp dil, 0x3a
ja 0x140001871
movabs rcx, 0x40000000400000d
bt rcx, rdi
jae 0x140001871
inc rsi
cmp rsi, r10
je 0x140001871
mov dil, byte [rsi]
jmp 0x140001839
or ebx, 3
jmp 0x140001a10
mov r9, qword [rbp + 0x67]
and ebx, 0xffffe0ff
movaps xmm7, xmm6
movaps xmm8, xmm6
movaps xmm9, xmm6
mov r11d, 4
cmp dil, 0x2d
je 0x1400018a2
or ebx, 2
jmp 0x140001daf
bts ebx, 8
jmp 0x140001e24
lea r9, [rbp + 0x6f]
mov dword [rsp + 0x20], 1
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
mov r9, qword [rbp + 0x67]
mov r15d, dword [rbp - 0x51]
mov rsi, qword [rbp - 0x49]
mov r11d, 4
jmp 0x140001e24
mov rax, r10
sub rax, rsi
cmp rax, 3
jl 0x140001e53
cmp byte [rsi + 1], 0x72
jne 0x140001e53
cmp byte [rsi + 2], 0x75
jne 0x140001e53
lea rax, [rsi + 3]
cmp byte [rax], 0x65
mov qword [rbp - 0x49], rax
jne 0x140001e53
lea r9, [rbp + 0x6f]
mov dword [rsp + 0x20], 6
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
mov r9, qword [rbp + 0x67]
or ebx, 1
mov rsi, qword [rbp - 0x49]
mov r15d, dword [rbp - 0x51]
mov dword [r9 + 0x10], 1
mov r11d, 4
jmp 0x140001daf
mov rax, r10
sub rax, rsi
cmp rax, 3
jl 0x140001e53
cmp byte [rsi + 1], 0x75
jne 0x140001e53
cmp byte [rsi + 2], 0x6c
jne 0x140001e53
lea rax, [rsi + 3]
cmp byte [rax], 0x6c
mov qword [rbp - 0x49], rax
jne 0x140001e53
mov dword [rsp + 0x20], 7
jmp 0x1400019e8
mov rax, r10
sub rax, rsi
cmp rax, r11
jl 0x140001e53
cmp byte [rsi + 1], 0x61
jne 0x140001e53
cmp byte [rsi + 2], 0x6c
jne 0x140001e53
cmp byte [rsi + 3], 0x73
jne 0x140001e53
lea rax, [rsi + 4]
cmp byte [rax], 0x65
mov qword [rbp - 0x49], rax
jne 0x140001e53
mov dword [rsp + 0x20], 6
lea r9, [rbp + 0x6f]
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
mov rsi, qword [rbp - 0x49]
or ebx, 1
mov r15d, dword [rbp - 0x51]
mov r9, qword [rbp + 0x67]
jmp 0x140001958
lea r9, [rbp + 0x6f]
mov dword [rsp + 0x20], 2
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
or ebx, 8
jmp 0x1400018d0
lea r9, [rbp + 0x6f]
mov dword [rsp + 0x20], 5
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x79]
call fcn.140001158
test al, al
je 0x140001e4f
mov r9, qword [rbp + 0x67]
or ebx, 0x20
xor r14d, r14d
mov r12, qword [r9 + 0x18]
jmp 0x1400018d4
test r9, r9
je 0x140001e53
cmp dword [r9 + 8], 2
jne 0x140001e53
and ebx, 0xfffffff3
jmp 0x140001d89
mov edx, dword [r9 + 8]
mov ecx, edx
sub ecx, 1
je 0x140001d4b
sub ecx, 2
je 0x140001ab7
cmp ecx, 1
jne 0x140001daf
movsx ecx, dil
lea eax, [rcx - 0x30]
cmp eax, 9
ja 0x140001be0
test dil, dil
je 0x140001be0
addsd xmm7, qword [0x140005b88]
cmp edx, 3
je 0x140001b1d
bt ebx, 0xa
jb 0x140001bb5
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
subsd xmm1, qword [0x140005b98]
bt ebx, 0xd
jae 0x140001b0c
mulsd xmm8, xmm10
addsd xmm8, xmm1
jmp 0x140001e24
movsd xmm0, qword [r9 + 0x10]
mulsd xmm0, xmm10
addsd xmm0, xmm1
jmp 0x140001b95
bt ebx, 0xa
jb 0x140001bb5
mov eax, 0x200
test eax, ebx
jne 0x140001e53
ucomisd xmm7, qword [0x140005b88]
jp 0x140001b48
jne 0x140001b48
cmp dil, 0x30
jne 0x140001b48
or ebx, eax
mov r8, qword [r9 + 0x10]
movabs rcx, 0x800000000000002f
movsx r10, dil
movabs rax, 0x6666666666666667
sub rcx, r10
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jge 0x140001ba0
addsd xmm7, qword [0x140005ba0]
xorps xmm0, xmm0
mov dword [r9 + 8], r11d
cvtsi2sd xmm0, qword [r9 + 0x10]
dec rsi
movsd qword [r9 + 0x10], xmm0
jmp 0x140001e24
lea rcx, [r8 - 6]
lea rcx, [r8 + rcx*4]
lea rcx, [r10 + rcx*2]
mov qword [r9 + 0x10], rcx
jmp 0x140001e24
movaps xmm0, xmm9
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
bts ebx, 0xb
mulsd xmm0, xmm10
subsd xmm1, qword [0x140005b98]
movaps xmm9, xmm1
addsd xmm9, xmm0
jmp 0x140001e24
lea eax, [rdi - 0x2b]
test al, 0xfd
je 0x140001c1d
cmp dil, 0x2e
jne 0x140001c47
cmp edx, 3
jne 0x140001c47
ucomisd xmm7, xmm6
jp 0x140001bfe
je 0x140001e53
mov dword [r9 + 8], r11d
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r9 + 0x10]
bts ebx, 0xd
movaps xmm7, xmm6
movsd qword [r9 + 0x10], xmm0
jmp 0x140001e24
mov eax, ebx
and eax, 0xc00
cmp eax, 0x400
jne 0x140001c47
bts ebx, 0xb
cmp dil, 0x2d
jne 0x140001e24
mov ebx, r8d
or ebx, 0x1800
jmp 0x140001e24
bt ebx, 0xa
jb 0x140001ccb
cmp edx, r11d
jne 0x140001c97
ucomisd xmm7, xmm6
jp 0x140001c5e
je 0x140001e53
movsd xmm1, qword [0x140005b88]
xor eax, eax
comisd xmm7, xmm6
jbe 0x140001c83
inc eax
mulsd xmm1, xmm10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm7, xmm0
ja 0x140001c6e
movaps xmm0, xmm8
divsd xmm0, xmm1
addsd xmm0, qword [r9 + 0x10]
movsd qword [r9 + 0x10], xmm0
sub dil, 0x45
test dil, 0xdf
jne 0x140001d19
bts ebx, 0xa
cmp dword [r9 + 8], 3
jne 0x140001cbf
mov dword [r9 + 8], r11d
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [r9 + 0x10]
movsd qword [r9 + 0x10], xmm0
movaps xmm7, xmm6
btr ebx, 9
jmp 0x140001e24
ucomisd xmm7, xmm6
jp 0x140001cd7
je 0x140001e53
movaps xmm1, xmm9
bt ebx, 0xc
jae 0x140001ce8
xorps xmm1, xmmword [0x140005bb0]
movsd xmm2, qword [0x140005b88]
xor eax, eax
comisd xmm1, xmm6
jbe 0x140001d0d
inc eax
mulsd xmm2, xmm10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm1, xmm0
ja 0x140001cf8
mulsd xmm2, qword [r9 + 0x10]
movsd qword [r9 + 0x10], xmm2
bt ebx, 8
jae 0x140001d46
cmp dword [r9 + 8], 3
jne 0x140001d33
mov rax, qword [r9 + 0x10]
neg rax
mov qword [r9 + 0x10], rax
jmp 0x140001d46
movsd xmm0, qword [r9 + 0x10]
xorps xmm0, xmmword [0x140005bb0]
movsd qword [r9 + 0x10], xmm0
or ebx, 3
jmp 0x140001daf
movsx ecx, dil
sub ecx, 9
je 0x140001e24
sub ecx, 1
je 0x140001e24
sub ecx, 3
je 0x140001e24
sub ecx, 0x13
je 0x140001e24
sub ecx, 2
je 0x140001d9c
sub ecx, 0xa
je 0x140001d8e
cmp ecx, 0x51
jne 0x140001e53
and ebx, 0xfffffffb
or ebx, 1
jmp 0x140001daf
test r11b, bl
je 0x140001e53
and ebx, 0xfffffffb
jmp 0x140001daf
test r11b, bl
jne 0x140001e53
mov r12, qword [r9 + 0x20]
or ebx, 0x20
xor r14d, r14d
test bl, 2
je 0x140001dba
and ebx, 0xfffffffd
dec rsi
test bl, 1
je 0x140001e24
mov rdx, qword [r9]
and ebx, 0xfffffffe
test rdx, rdx
jne 0x140001dd2
or ebx, 0x84
jmp 0x140001e24
mov ecx, dword [rdx + 8]
mov eax, 0xc
cmp ecx, 2
cmovne eax, r11d
or ebx, eax
test r15d, r15d
jne 0x140001e0f
sub ecx, 1
je 0x140001dff
cmp ecx, 1
jne 0x140001e0f
mov ecx, dword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov qword [rax + rcx*8], r9
jmp 0x140001e0f
mov eax, dword [rdx + 0x10]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x18]
mov qword [rax + rcx*8 + 0x10], r9
mov rax, qword [r9]
inc dword [rax + 0x10]
mov eax, dword [rax + 0x10]
cmp eax, dword [rbp - 0x75]
ja 0x140001e53
mov r9, qword [r9]
mov qword [rbp + 0x67], r9
mov r10, qword [rbp + 0x7f]
inc rsi
mov qword [rbp - 0x49], rsi
jmp 0x1400013a8
mov rax, qword [rbp + 0x77]
sub r15d, 1
mov qword [rbp + 0x6f], rax
mov dword [rbp - 0x51], r15d
jns 0x14000138b
jmp 0x140001f2b
mov r15d, dword [rbp - 0x51]
mov rsi, qword [rbp + 0x6f]
test r15d, r15d
mov rdi, qword [rbp + 0x77]
cmovne rsi, rdi
test rsi, rsi
je 0x140001e87
mov rbx, qword [rsi + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, rbx
test rbx, rbx
jne 0x140001e67
test r15d, r15d
jne 0x140001f29
test rdi, rdi
je 0x140001f29
and qword [rdi], 0
mov ecx, dword [rdi + 8]
sub ecx, 1
je 0x140001ec9
sub ecx, 1
je 0x140001eb1
cmp ecx, 3
jne 0x140001eed
jmp 0x140001ed0
mov eax, dword [rdi + 0x10]
test eax, eax
je 0x140001ed0
dec eax
mov dword [rdi + 0x10], eax
mov ecx, eax
mov rax, qword [rdi + 0x18]
mov rdi, qword [rax + rcx*8]
jmp 0x140001f20
mov eax, dword [rdi + 0x10]
test eax, eax
jne 0x140001f0e
mov rbx, qword [rdi + 0x18]
test rbx, rbx
je 0x140001eed
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, rdi
mov rdi, qword [rdi]
test rbx, rbx
je 0x140001f20
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140001f20
dec eax
mov dword [rdi + 0x10], eax
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x18]
mov rdi, qword [rax + rcx*8 + 0x10]
test rdi, rdi
jne 0x140001e9d
xor eax, eax
lea r11, [rsp + 0xc8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret