Function at 0x1400308c0
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 0x140030998
cmp byte [rdx], 0
je 0x1400309b7
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 0x14003095c
test rdi, rdi
js 0x140030bde
mov r13, rdx
movabs rdx, 0x7ffffffffffffff8
and rdx, rdi
mov ecx, 8
call fcn.14008b700
mov rbx, rax
test rax, rax
mov rdx, r13
je 0x140030bde
mov r13, rdi
shr r13, 3
mov rcx, rdx
mov rdx, r14
mov r8, rbx
mov r9, r13
call fcn.140036370
test al, al
je 0x1400309f5
lea r13, [0x1401d76e6]
cmp rdi, 8
jb 0x1400309be
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400309be
mov r8d, 8
mov rcx, rdx
mov rdx, r14
xor r9d, r9d
call fcn.140036370
lea r13, [0x1401d76e6]
test al, al
jmp 0x1400309be
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 0x140030a0c
mov eax, 8
lea r13, [0x1401d771f]
jmp 0x140030a6a
cmp rdi, 0x20
jae 0x140030a2b
mov eax, 0xf
movq xmm6, rax
lea r13, [0x1401d76e6]
cmp rdi, 8
jb 0x1400309c8
jmp 0x140030a6e
mov rcx, rbx
mov rdx, r13
call fcn.1401a0db0
test rax, rax
je 0x140030a49
mov eax, 0x10
lea r13, [0x1401d76f5]
jmp 0x140030a6a
mov edx, 3
mov rcx, rbx
mov r8, r13
call fcn.1401a0f50
test rax, rax
je 0x140030a84
mov eax, 0xf
lea r13, [0x1401d76e6]
movd xmm6, eax
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400309c8
mov rcx, qword [rbx]
call fcn.1401a33b0
movq xmm6, rax
mov rcx, rbx
mov rdx, r13
call fcn.140036140
test rbx, rbx
je 0x1400309c8
cmp r12, 0x3ff
jbe 0x140030bde
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 0x140030ad8
lea rdi, [0x1401d7705]
jmp 0x140030ae4
cmp rax, r15
jbe 0x140030b08
lea rdi, [0x1401d771f]
mov r15d, 8
test r13, r13
je 0x140030b00
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov r13, rdi
jmp 0x1400309cd
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r13
movdqu xmmword [rsp + 0x58], xmm6
mov qword [rsp + 0x68], rax
test r13, r13
je 0x140030bde
mov qword [rsp + 0x30], rax
mov rax, r13
shr rax, 0x3c
jne 0x140030bde
lea rdx, [r13*8]
mov ecx, 8
call fcn.14008b700
test rax, rax
je 0x140030bde
mov r14, rax
xor ecx, ecx
cmp r13, 4
mov rax, qword [rsp + 0x30]
jb 0x140030baa
mov rdx, r14
sub rdx, rbx
cmp rdx, 0x20
jb 0x140030baa
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 0x140030b7c
cmp r13, rcx
je 0x140030c1e
mov r8, r13
mov rdx, rcx
and r8, 3
je 0x140030bd0
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 0x140030bb9
sub rcx, r13
cmp rcx, 0xfffffffffffffffc
jbe 0x140030be0
test r13, r13
jne 0x140030c1e
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 0x140030be0
mov r15, r13
shl r15, 6
or byte [r14], 1
sub r15, rax
je 0x140030c5f
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.1401a1140
dec r15
jne 0x140030c49
lea r15, [rsp + 0x58]
lea rdi, [r13 - 1]
mov rcx, r14
mov rdx, r14
mov r8, rbx
mov r9, r13
call fcn.1401a1140
sub rdi, 1
jae 0x140030c68
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
mov rcx, r14
mov rdx, r14
mov r8, r14
mov r9, rbx
call fcn.1400f2700
movq r15, xmm6
test rbx, rbx
je 0x1400309cd
lea rcx, [0x1401d771f]
mov eax, 8
cmp rbp, 5
ja 0x140030dc0
mov r11, rbp
test rbp, rbp
mov rbp, qword [rsp + 0x40]
je 0x140030d54
cmp byte [rbp], 0
je 0x140030db4
xor r10d, r10d
lea r9, str.InvalidEncodingWrongAlgorithmVersionNotSupportedInconsistentComponentsUnexpectedErrorInvalidComponentTooSmallPublicKeyIsMissingTooLarge
xor edx, edx
test r11, r11
je 0x140030daa
movzx r8d, byte [rbp + r10]
inc r10
shl rdx, 8
or rdx, r8
cmp r11, r10
jne 0x140030d60
lea r9, [0x1401d7705]
test rdx, rdx
je 0x140030daf
cmp rdx, qword [rsp + 0x38]
jb 0x140030daf
mov r9, rdx
shr r9, 0x21
jne 0x140030dc0
test r8b, 1
jne 0x140030e12
lea rcx, [0x1401d76f5]
mov eax, 0x10
jmp 0x140030dc0
mov eax, 0xf
mov rcx, r9
jmp 0x140030dc0
lea rcx, str.InvalidEncodingWrongAlgorithmVersionNotSupportedInconsistentComponentsUnexpectedErrorInvalidComponentTooSmallPublicKeyIsMissingTooLarge
mov eax, 0xf
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
test r13, r13
je 0x1400309dc
mov rcx, qword [0x1402590e0]
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 0x1400309dc