Function at 0x14003c404
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rsi, rdx
mov rbx, rcx
xor edi, edi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rdi
mov r14, qword [rdx + 0x10]
test r14, r14
jne 0x14003c44c
mov qword [rcx], rdi
mov qword [rcx + 8], rdi
mov qword [rcx + 0x10], rdi
jmp 0x14003c5e6
mov r8, rdi
mov rdx, r14
test r14b, 3
jne 0x14003c676
mov rax, rsi
cmp qword [rsi + 0x18], 8
jb 0x14003c469
mov rax, qword [rsi]
mov r9d, 0x80
lea r15, [0x14004cb80]
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x14003c483
mov rcx, qword [rsi]
lea rcx, [rcx + r14*2]
cmp rax, rcx
je 0x14003c4da
movzx ecx, word [rax]
cmp rcx, r9
jae 0x14003c613
cmp byte [rcx + r15], 0xff
je 0x14003c613
cmp byte [rcx + r15], 0xfe
jne 0x14003c4d1
inc r8
cmp rdx, 2
ja 0x14003c6b8
jne 0x14003c4d1
movzx ecx, word [rax + 2]
cmp rcx, r9
jae 0x14003c697
cmp byte [rcx + r15], 0xfe
jne 0x14003c697
add rax, 2
dec rdx
jmp 0x14003c476
cmp qword [rsi + 0x18], 8
jb 0x14003c4e4
mov rsi, qword [rsi]
mov rax, r14
shr rax, 2
lea rdx, [rax + rax*2]
sub rdx, r8
lea rcx, [rbp - 0x38]
call fcn.14001cfcc
mov r11b, 0xf
mov r10, qword [rbp - 0x38]
cmp r14, 4
jbe 0x14003c573
add r14, 0xfffffffffffffffb
shr r14, 2
inc r14
movzx eax, word [rsi]
mov cl, byte [rax + r15]
movzx eax, word [rsi + 2]
mov dl, byte [rax + r15]
movzx eax, word [rsi + 4]
mov r9b, byte [rax + r15]
movzx eax, word [rsi + 6]
mov r8b, byte [rax + r15]
mov al, dl
shr al, 4
and al, 3
shl cl, 2
or al, cl
mov byte [r10 + rdi], al
mov al, r9b
shr al, 2
and al, r11b
shl dl, 4
or al, dl
mov byte [r10 + rdi + 1], al
and r8b, 0x3f
shl r9b, 6
xor r8b, r9b
mov byte [r10 + rdi + 2], r8b
add rsi, 8
add rdi, 3
sub r14, 1
jne 0x14003c513
movzx eax, word [rsi]
mov cl, byte [rax + r15]
movzx eax, word [rsi + 2]
mov r9b, byte [rax + r15]
movzx eax, word [rsi + 4]
mov r8b, byte [rax + r15]
movzx eax, word [rsi + 6]
mov dl, byte [rax + r15]
mov al, r9b
shr al, 4
and al, 3
shl cl, 2
or al, cl
mov byte [r10 + rdi], al
mov cl, r9b
shl cl, 4
cmp r8b, 0xfe
je 0x14003c60c
mov al, r8b
shr al, 2
and al, r11b
or al, cl
mov byte [r10 + rdi + 1], al
shl r8b, 6
cmp dl, 0xfe
je 0x14003c604
and dl, 0x3f
or dl, r8b
mov byte [r10 + rdi + 2], dl
mov rax, qword [rbp - 0x30]
mov qword [rbx + 8], rax
mov rax, qword [rbp - 0x28]
mov qword [rbx + 0x10], rax
mov qword [rbx], r10
mov rax, rbx
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
cmp r8b, 0x40
jae 0x14003c634
jmp 0x14003c5d3
test r11b, r9b
jne 0x14003c655
jmp 0x14003c5d3
lea rdx, str.invalid_character_found_in_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3
lea rdx, str.Invalid_end_of_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3
lea rdx, str.Invalid_end_of_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3
lea rdx, str.length_of_base64_string_is_not_an_even_multiple_of_4
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3
lea rdx, str.invalid_padding_character_found_in_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3
lea rdx, str.invalid_padding_character_found_in_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023550
lea rdx, [0x140055d78]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3