Function at 0x14003c524
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 0x14003c56c
mov qword [rcx], rdi
mov qword [rcx + 8], rdi
mov qword [rcx + 0x10], rdi
jmp 0x14003c706
mov r8, rdi
mov rdx, r14
test r14b, 3
jne 0x14003c796
mov rax, rsi
cmp qword [rsi + 0x18], 8
jb 0x14003c589
mov rax, qword [rsi]
mov r9d, 0x80
lea r15, [0x14004cb80]
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x14003c5a3
mov rcx, qword [rsi]
lea rcx, [rcx + r14*2]
cmp rax, rcx
je 0x14003c5fa
movzx ecx, word [rax]
cmp rcx, r9
jae 0x14003c733
cmp byte [rcx + r15], 0xff
je 0x14003c733
cmp byte [rcx + r15], 0xfe
jne 0x14003c5f1
inc r8
cmp rdx, 2
ja 0x14003c7d8
jne 0x14003c5f1
movzx ecx, word [rax + 2]
cmp rcx, r9
jae 0x14003c7b7
cmp byte [rcx + r15], 0xfe
jne 0x14003c7b7
add rax, 2
dec rdx
jmp 0x14003c596
cmp qword [rsi + 0x18], 8
jb 0x14003c604
mov rsi, qword [rsi]
mov rax, r14
shr rax, 2
lea rdx, [rax + rax*2]
sub rdx, r8
lea rcx, [rbp - 0x38]
call fcn.14001d0fc
mov r11b, 0xf
mov r10, qword [rbp - 0x38]
cmp r14, 4
jbe 0x14003c693
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 0x14003c633
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 0x14003c72c
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 0x14003c724
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 0x14003c754
jmp 0x14003c6f3
test r11b, r9b
jne 0x14003c775
jmp 0x14003c6f3
lea rdx, str.invalid_character_found_in_base64_string
lea rcx, [rbp - 0x20]
call fcn.140023680
lea rdx, [0x140055d90]
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.140023680
lea rdx, [0x140055d90]
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.140023680
lea rdx, [0x140055d90]
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.140023680
lea rdx, [0x140055d90]
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.140023680
lea rdx, [0x140055d90]
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.140023680
lea rdx, [0x140055d90]
lea rcx, [rbp - 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
int3