Function at 0x14012cf20
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rax, qword [0x1404fe040]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x14012d4e6
mov rdi, r8
mov rbp, qword [r9]
mov r8, qword [rbp]
test r8b, 1
je 0x14012d4e6
cmp dword [r9 + 0x10], 0
jne 0x14012d4c6
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x40], rcx
cmp dword [rdx + 0x10], 0
jne 0x14012d506
movsxd r13, dword [rdx + 8]
cmp r13, rax
mov r11, rax
cmovb r11, r13
mov r10, qword [rdx]
xor r8d, r8d
test r13, r13
je 0x14012cfdd
xor esi, esi
mov r14, qword [rbp + rsi*8]
mov r15, qword [r10 + rsi*8]
xor r12d, r12d
mov rbx, r15
sub rbx, r14
sete r12b
neg r12
xor r14, r15
xor rbx, r15
or rbx, r14
xor rbx, r15
sar rbx, 0x3f
or rbx, 1
xor r8, rbx
and r8, r12
xor r8, rbx
inc rsi
cmp r11, rsi
jne 0x14012cf9f
cmp r13d, eax
jb 0x14012d35f
cmp eax, r13d
jb 0x14012d465
test r8d, r8d
jns 0x14012d506
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rdx
mov r9d, dword [rdi + 8]
test r9d, r9d
jle 0x14012d497
mov r8, qword [rdi]
mov r10d, r9d
cmp qword [r8 + r10*8 - 8], 0
je 0x14012d1df
movsxd r10, r9d
shl r9d, 6
mov r10, qword [r8 + r10*8 - 8]
xor r8d, r8d
test r10, r10
setne r8b
or r8d, r9d
xor r9d, r9d
mov r11, r10
shr r11, 0x20
cmove r11, r10
setne r9b
shl r9d, 5
mov rsi, r11
shr rsi, 0x10
xor r10d, r10d
cmp r11, 0x10000
cmovb rsi, r11
setae r10b
shl r10d, 4
mov rbx, rsi
shr rbx, 8
xor r11d, r11d
cmp rsi, 0x100
cmovb rbx, rsi
setae r11b
mov rsi, rbx
shr rsi, 4
xor r14d, r14d
cmp rbx, 0x10
setae r14b
cmovb rsi, rbx
mov rbx, rsi
shr rbx, 2
xor r15d, r15d
cmp rsi, 4
setae r15b
cmovb rbx, rsi
or r9d, r8d
or r9d, r10d
cmp rbx, 2
lea r8d, [r9 + r11*8]
lea r8d, [r8 + r14*4]
lea r13d, [r8 + r15*2]
sbb r13d, 0xffffffff
add r13d, 0xffffffc0
je 0x14012d3e0
mov rbx, qword [rsp + 0x1c0]
lea rcx, [rsp + 0x50]
mov r8d, 0x100
mov dl, 0xaa
call fcn.1402d26c0
cmp byte [rbx + 0x28], 0
jne 0x14012d114
mov rcx, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rcx, qword [rbx + 0x18]
je 0x14012d384
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], rsi
inc qword [rbx + 0x10]
mov rcx, rbx
call fcn.14012c460
mov r12, rax
mov rcx, rbx
call fcn.14012c460
mov qword [rsp + 0x50], rax
xor esi, esi
test r12, r12
je 0x14012d5e8
mov r15, rax
mov ecx, 0
test rax, rax
je 0x14012d30b
mov rbp, qword [rsp + 0x1c8]
xor esi, esi
test rbp, rbp
je 0x14012d5cf
xor eax, eax
cmp r13d, 0x29f
mov qword [rsp + 0x28], rax
ja 0x14012d4a5
cmp r13d, 0xef
ja 0x14012d4b0
cmp r13d, 0x4f
ja 0x14012d4bb
xor eax, eax
cmp r13d, 0x18
setae al
lea r14d, [rax*2 + 1]
mov qword [rsp + 0x20], rbx
mov rcx, r15
mov rdx, qword [rsp + 0x30]
mov r8, rbp
mov r9, rbp
call fcn.14012d690
xor esi, esi
test eax, eax
je 0x14012d306
cmp r14d, 2
mov rax, r14
mov qword [rsp + 0x38], r14
jae 0x14012d52e
dec r13d
mov ecx, eax
mov qword [rsp + 0x48], rcx
xor esi, esi
mov r14, rax
mov r15d, r13d
jmp 0x14012d22a
lea r10d, [r9 - 1]
cmp r9d, 1
mov r9d, r10d
jg 0x14012d012
jmp 0x14012d3e0
test sil, 1
je 0x14012d219
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, rbp
call fcn.14012d690
test eax, eax
je 0x14012d3d9
sub r15, 1
jb 0x14012d2f1
add r13d, 0x7fffffff
test r15d, r15d
js 0x14012d1f5
movsxd rax, dword [rdi + 8]
mov rcx, r15
shr rcx, 6
cmp rcx, rax
jae 0x14012d1f5
mov rdx, qword [rdi]
mov rcx, qword [rdx + rcx*8]
bt rcx, r15
jae 0x14012d1f5
cmp r14d, 2
jb 0x14012d25b
test r15, r15
jne 0x14012d5ef
xor r14d, r14d
mov dword [rsp + 0x30], 0
mov r13d, 0
test sil, 1
je 0x14012d2c3
mov esi, 0xffffffff
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, rbp
call fcn.14012d690
test eax, eax
je 0x14012d3d9
inc esi
cmp dword [rsp + 0x30], esi
jne 0x14012d277
mov r8, qword [rsp + r14*8 + 0x50]
mov qword [rsp + 0x20], rbx
mov rcx, r12
mov rdx, r12
mov r9, rbp
call fcn.14012d690
mov r13d, dword [rsp + 0x30]
test eax, eax
jne 0x14012d2d9
jmp 0x14012d3d9
mov rdx, qword [rsp + r14*8 + 0x50]
mov rcx, r12
call fcn.14012c070
test rax, rax
je 0x14012d3d9
cmp r15d, r13d
mov r14, qword [rsp + 0x38]
je 0x14012d2f1
not r13d
add r13d, r15d
mov sil, 1
jmp 0x14012d1da
mov rcx, qword [rsp + 0x40]
mov rdx, r12
mov r8, rbp
mov r9, rbx
call fcn.14012d8a0
mov esi, eax
mov rcx, qword [rsp + 0x28]
call fcn.14012d9a0
cmp byte [rbx + 0x28], 0
jne 0x14012d32f
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
lea rdx, [rcx - 1]
mov qword [rbx + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rbx + 0x20], rax
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
cmp rcx, qword [0x1404fe040]
je 0x14012d349
call fcn.140297b50
int3
mov eax, esi
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r10d, r10d
or r10, qword [rbp + r13*8]
inc r13
cmp rax, r13
jne 0x14012d362
xor r11d, r11d
cmp r10, 1
sbb r11, r11
not r11d
or r8d, r11d
jmp 0x14012cfef
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov r14d, 0x20
cmovne r14, rax
cmp r14, rcx
jbe 0x14012d5c4
mov rax, r14
shr rax, 0x3d
jne 0x14012d5c4
lea rdx, [r14*8]
mov rcx, qword [rbx + 8]
call fcn.140230650
test rax, rax
je 0x14012d5c4
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], r14
mov rcx, qword [rbx + 0x10]
jmp 0x14012d10c
xor esi, esi
jmp 0x14012d306
mov rsi, qword [rsp + 0x40]
and qword [rsp + 0x28], 0xfffffffffffffffe
cmp eax, 1
je 0x14012d419
cmp eax, 3
mov r8d, 2
cmovge r8d, eax
mov edx, 1
mov rax, qword [rsp + 0x28]
or rax, qword [rbp + rdx*8]
mov qword [rsp + 0x28], rax
inc rdx
cmp r8, rdx
jne 0x14012d402
cmp qword [rsp + 0x28], 0
je 0x14012d454
mov edx, 1
mov rcx, rsi
call fcn.140317c70
test eax, eax
je 0x14012d45e
mov dword [rsi + 0x10], 0
mov rax, qword [rsi]
mov qword [rax], 1
mov dword [rsi + 8], 1
mov esi, 1
jmp 0x14012d32f
xor eax, eax
mov dword [rsi + 0x10], eax
mov dword [rsi + 8], eax
jmp 0x14012d44a
xor esi, esi
jmp 0x14012d32f
mov r14, r9
xor r11d, r11d
mov rsi, rax
or r11, qword [r10 + rsi*8]
inc rsi
cmp r13, rsi
jne 0x14012d46e
xor r9d, r9d
cmp r11, 1
sbb r9, r9
xor r8d, 1
and r8d, r9d
xor r8d, 1
mov r9, r14
jmp 0x14012cfef
je 0x14012d3e0
mov r8, qword [rdi]
jmp 0x14012d021
mov r14d, 6
jmp 0x14012d197
mov r14d, 5
jmp 0x14012d197
mov r14d, 4
jmp 0x14012d197
mov dword [rsp + 0x20], 0x27e
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c.inc
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x6d
jmp 0x14012d524
mov dword [rsp + 0x20], 0x27a
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c.inc
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x14012d524
mov dword [rsp + 0x20], 0x283
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c.inc
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x6b
call fcn.1403a01f0
jmp 0x14012d32f
mov rcx, rbx
call fcn.14012c460
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14012d306
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x30]
mov rdx, r15
mov r8, r15
mov r9, rbp
call fcn.14012d690
test eax, eax
je 0x14012d306
mov rax, qword [rsp + 0x38]
lea r15d, [rax - 1]
mov r14d, 1
mov rcx, rbx
call fcn.14012c460
mov qword [rsp + r14*8 + 0x50], rax
test rax, rax
je 0x14012d306
mov rdx, qword [rsp + r14*8 + 0x48]
mov qword [rsp + 0x20], rbx
mov rcx, rax
mov r8, qword [rsp + 0x30]
mov r9, rbp
call fcn.14012d690
test eax, eax
je 0x14012d306
inc r14
mov eax, r14d
mov ecx, r15d
shr eax, cl
test eax, eax
mov rax, qword [rsp + 0x38]
je 0x14012d573
jmp 0x14012d1cb
mov word [rbx + 0x28], 0x101
jmp 0x14012d114
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
call fcn.140319fb0
mov rbp, rax
test rax, rax
jne 0x14012d15d
xor ecx, ecx
jmp 0x14012d30b
mov r8d, r15d
and r8d, 0x7fffffff
and r13d, 0x7fffffff
dec r13
mov r9d, 1
mov dword [rsp + 0x30], 0
mov r10d, 1
test r13, r13
js 0x14012d645
mov rcx, r13
shr rcx, 6
cmp rcx, rax
jae 0x14012d645
mov rcx, qword [rdx + rcx*8]
bt rcx, r13
jae 0x14012d645
mov ecx, r10d
sub ecx, dword [rsp + 0x30]
shl r9d, cl
or r9d, 1
mov dword [rsp + 0x30], r10d
lea rcx, [r10 + 1]
cmp rcx, qword [rsp + 0x48]
jae 0x14012d65b
dec r13
cmp r10, r8
mov r10, rcx
jb 0x14012d617
sar r9d, 1
movsxd r14, r9d
test sil, 1
jne 0x14012d671
mov r13d, dword [rsp + 0x30]
jmp 0x14012d2c3
cmp dword [rsp + 0x30], 0
js 0x14012d29d
jmp 0x14012d272