Function at 0x140030570
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm6
mov r14, r8
mov rsi, rcx
test r8, r8
je 0x140030648
cmp byte [rdx], 0
je 0x140030667
mov qword [rsp + 0x40], r9
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x38], rax
mov r15, qword [rsp + 0x100]
mov r12, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0xf0]
lea rdi, [r14 + 7]
mov ebx, 8
cmp rdi, 8
jb 0x14003060c
test rdi, rdi
js 0x14003088e
mov r13, rdx
movabs rdx, 0x7ffffffffffffff8
and rdx, rdi
mov ecx, 8
call fcn.14008bd10
mov rbx, rax
test rax, rax
mov rdx, r13
je 0x14003088e
mov r13, rdi
shr r13, 3
mov rcx, rdx
mov rdx, r14
mov r8, rbx
mov r9, r13
call fcn.140036020
test al, al
je 0x1400306a5
lea r13, [0x1401d24ae]
cmp rdi, 8
jb 0x14003066e
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x14003066e
mov r8d, 8
mov rcx, rdx
mov rdx, r14
xor r9d, r9d
call fcn.140036020
lea r13, [0x1401d24ae]
test al, al
jmp 0x14003066e
lea r13, str.InvalidEncodingWrongAlgorithmVersionNotSupportedInconsistentComponentsUnexpectedErrorInvalidComponentTooSmallPublicKeyIsMissingTooLarge
mov eax, 0xf
movq xmm6, rax
movq r15, xmm6
mov qword [rsi + 8], r13
mov qword [rsi + 0x10], r15
mov qword [rsi], 0
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdi, 0x407
jbe 0x1400306bc
mov eax, 8
lea r13, [0x1401d24e7]
jmp 0x14003071a
cmp rdi, 0x20
jae 0x1400306db
mov eax, 0xf
movq xmm6, rax
lea r13, [0x1401d24ae]
cmp rdi, 8
jb 0x140030678
jmp 0x14003071e
mov rcx, rbx
mov rdx, r13
call fcn.14019bf30
test rax, rax
je 0x1400306f9
mov eax, 0x10
lea r13, [0x1401d24bd]
jmp 0x14003071a
mov edx, 3
mov rcx, rbx
mov r8, r13
call fcn.14019c0d0
test rax, rax
je 0x140030734
mov eax, 0xf
lea r13, [0x1401d24ae]
movd xmm6, eax
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x140030678
mov rcx, qword [rbx]
call fcn.14019e530
movq xmm6, rax
mov rcx, rbx
mov rdx, r13
call fcn.140035df0
test rbx, rbx
je 0x140030678
cmp r12, 0x3ff
jbe 0x14003088e
mov ecx, eax
shr ecx, 2
mov edx, eax
shr edx, 1
or edx, ecx
or edx, eax
and edx, 1
lea rcx, [rax + rdx*8]
and rcx, 0xfffffffffffffff8
cmp rcx, r12
jae 0x140030788
lea rdi, [0x1401d24cd]
jmp 0x140030794
cmp rax, r15
jbe 0x1400307b8
lea rdi, [0x1401d24e7]
mov r15d, 8
test r13, r13
je 0x1400307b0
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov r13, rdi
jmp 0x14003067d
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r13
movdqu xmmword [rsp + 0x58], xmm6
mov qword [rsp + 0x68], rax
test r13, r13
je 0x14003088e
mov qword [rsp + 0x30], rax
mov rax, r13
shr rax, 0x3c
jne 0x14003088e
lea rdx, [r13*8]
mov ecx, 8
call fcn.14008bd10
test rax, rax
je 0x14003088e
mov r14, rax
xor ecx, ecx
cmp r13, 4
mov rax, qword [rsp + 0x30]
jb 0x14003085a
mov rdx, r14
sub rdx, rbx
cmp rdx, 0x20
jb 0x14003085a
mov rcx, r13
and rcx, 0xfffffffffffffffc
xor edx, edx
pcmpeqd xmm0, xmm0
movdqu xmm1, xmmword [rbx + rdx*8]
movdqu xmm2, xmmword [rbx + rdx*8 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r14 + rdx*8], xmm1
movdqu xmmword [r14 + rdx*8 + 0x10], xmm2
add rdx, 4
cmp rcx, rdx
jne 0x14003082c
cmp r13, rcx
je 0x1400308ce
mov r8, r13
mov rdx, rcx
and r8, 3
je 0x140030880
mov r9, rcx
lea rdx, [r9 + 1]
mov r10, qword [rbx + r9*8]
not r10
mov qword [r14 + r9*8], r10
mov r9, rdx
dec r8
jne 0x140030869
sub rcx, r13
cmp rcx, 0xfffffffffffffffc
jbe 0x140030890
test r13, r13
jne 0x1400308ce
ud2
mov rcx, qword [rbx + rdx*8]
not rcx
mov qword [r14 + rdx*8], rcx
mov rcx, qword [rbx + rdx*8 + 8]
not rcx
mov qword [r14 + rdx*8 + 8], rcx
mov rcx, qword [rbx + rdx*8 + 0x10]
not rcx
mov qword [r14 + rdx*8 + 0x10], rcx
mov rcx, qword [rbx + rdx*8 + 0x18]
not rcx
mov qword [r14 + rdx*8 + 0x18], rcx
lea rcx, [rdx + 4]
mov rdx, rcx
cmp r13, rcx
jne 0x140030890
mov r15, r13
shl r15, 6
or byte [r14], 1
sub r15, rax
je 0x14003090f
mov rax, qword [r14 + r13*8 - 8]
mov ecx, r15d
shl rax, cl
shr rax, cl
mov qword [r14 + r13*8 - 8], rax
cmp r15, 1
adc r15, 0
mov rcx, r14
mov rdx, r14
mov r8, rbx
mov r9, r13
call fcn.14019c2c0
dec r15
jne 0x1400308f9
lea r15, [rsp + 0x58]
lea rdi, [r13 - 1]
mov rcx, r14
mov rdx, r14
mov r8, rbx
mov r9, r13
call fcn.14019c2c0
sub rdi, 1
jae 0x140030918
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400ee480
movq r15, xmm6
test rbx, rbx
je 0x14003067d
lea rcx, [0x1401d24e7]
mov eax, 8
cmp rbp, 5
ja 0x140030a70
mov r11, rbp
test rbp, rbp
mov rbp, qword [rsp + 0x40]
je 0x140030a04
cmp byte [rbp], 0
je 0x140030a64
xor r10d, r10d
lea r9, str.InvalidEncodingWrongAlgorithmVersionNotSupportedInconsistentComponentsUnexpectedErrorInvalidComponentTooSmallPublicKeyIsMissingTooLarge
xor edx, edx
test r11, r11
je 0x140030a5a
movzx r8d, byte [rbp + r10]
inc r10
shl rdx, 8
or rdx, r8
cmp r11, r10
jne 0x140030a10
lea r9, [0x1401d24cd]
test rdx, rdx
je 0x140030a5f
cmp rdx, qword [rsp + 0x38]
jb 0x140030a5f
mov r9, rdx
shr r9, 0x21
jne 0x140030a70
test r8b, 1
jne 0x140030ac2
lea rcx, [0x1401d24bd]
mov eax, 0x10
jmp 0x140030a70
mov eax, 0xf
mov rcx, r9
jmp 0x140030a70
lea rcx, str.InvalidEncodingWrongAlgorithmVersionNotSupportedInconsistentComponentsUnexpectedErrorInvalidComponentTooSmallPublicKeyIsMissingTooLarge
mov eax, 0xf
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
test r13, r13
je 0x14003068c
mov rcx, qword [0x1402540f8]
xor edx, edx
mov r8, r14
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.KERNEL32.dll_HeapFree
mov qword [rsi], rbx
mov qword [rsi + 8], r13
mov qword [rsi + 0x10], r15
pshufd xmm0, xmm6, 0xee
movq qword [rsi + 0x18], xmm0
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], r14
mov qword [rsi + 0x30], r13
mov qword [rsi + 0x38], rdx
jmp 0x14003068c