Function at 0x14006f4e0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, rdx
movsxd rdx, dword [rdx + 8]
test rdx, rdx
je 0x14006f59a
mov rsi, rcx
mov rax, qword [rdi]
cmp edx, 4
jae 0x14006f50b
xor ecx, ecx
xor r8d, r8d
jmp 0x14006f560
mov rcx, rdx
and rcx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax]
movdqu xmm2, xmmword [rax + r8*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rax + r8*8 + 0x10]
por xmm1, xmm2
add r8, 4
cmp rcx, r8
jne 0x14006f520
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp rcx, rdx
je 0x14006f56c
nop word cs:[rax + rax]
or r8, qword [rax + rcx*8]
inc rcx
cmp rdx, rcx
jne 0x14006f560
test r8, r8
je 0x14006f59a
test edx, edx
jle 0x14006f57a
test byte [rax], 1
jne 0x14006f5c9
mov dword [rsp + 0x20], 0xa8
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnmontgomery.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x14006f5b8
mov dword [rsp + 0x20], 0xa4
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnmontgomery.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.1400c18f0
mov eax, esi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
cmp dword [rdi + 0x10], 0
je 0x14006f5ef
mov dword [rsp + 0x20], 0xac
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnmontgomery.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, WSASetLastError
jmp 0x14006f5b8
cmp edx, 0x401
jb 0x14006f6a4
lea r8, [rdx - 0x400]
cmp r8, 4
jae 0x14006f612
mov ecx, 0x400
xor r10d, r10d
jmp 0x14006f670
mov r9, r8
and r9, 0xfffffffffffffffc
lea rcx, [r9 + 0x400]
pxor xmm0, xmm0
xor r10d, r10d
pxor xmm1, xmm1
nop dword [rax + rax]
movdqu xmm2, xmmword [rax + r10*8 + 0x2000]
por xmm0, xmm2
movdqu xmm2, xmmword [rax + r10*8 + 0x2010]
por xmm1, xmm2
add r10, 4
cmp r9, r10
jne 0x14006f630
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r10, xmm0
cmp r8, r9
je 0x14006f67c
nop dword [rax]
or r10, qword [rax + rcx*8]
inc rcx
cmp rdx, rcx
jne 0x14006f670
test r10, r10
je 0x14006f6a4
mov dword [rsp + 0x20], 0xb0
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnmontgomery.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x66
jmp 0x14006f5b8
lea rbx, [rsi + 0x18]
cmp rbx, rdi
je 0x14006f6e4
mov rcx, rbx
call fcn.140063720
test eax, eax
je 0x14006f71f
movsxd r8, dword [rdi + 8]
test r8, r8
je 0x14006f6d6
shl r8, 3
mov rcx, qword [rbx]
mov rdx, qword [rdi]
call fcn.140160f20
mov eax, dword [rdi + 8]
jmp 0x14006f6d8
xor eax, eax
mov dword [rsi + 0x20], eax
mov eax, dword [rdi + 0x10]
mov dword [rsi + 0x28], eax
mov rdi, rbx
test rdi, rdi
je 0x14006f71f
mov eax, dword [rsi + 0x20]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov rdx, rax
nop word cs:[rax + rax]
test edx, edx
jle 0x14006f742
mov r9, qword [rbx]
lea r8, [rdx - 1]
cmp qword [r9 + rdx*8 - 8], 0
mov rdx, r8
je 0x14006f700
inc r8d
mov dword [rsi + 0x20], r8d
jmp 0x14006f750
mov dword [rsp + 0x20], 0xb6
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bnmontgomery.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x44
jmp 0x14006f5b8
mov dword [rsi + 0x20], ecx
test eax, eax
js 0x14006f750
mov dword [rsi + 0x28], 0
mov rax, qword [rbx]
mov rax, qword [rax]
mov r10d, 1
mov edx, 0x40
xor ecx, ecx
movabs r8, 0x8000000000000000
movabs r9, 0x4000000000000000
nop word [rax + rax]
mov r11d, r10d
and r11d, 1
neg r11
mov rdi, rax
and rdi, r11
mov rbx, rdi
xor rbx, r10
shr rbx, 1
and rdi, r10
add rdi, rbx
mov ebx, edi
and ebx, 1
neg rbx
mov r10, rax
and r10, rbx
mov r14, r10
xor r14, rdi
shr r14, 1
and r10, rdi
add r10, r14
and rbx, r8
shr rcx, 2
and r11, r9
or rcx, r11
or rcx, rbx
add rdx, 0xfffffffffffffffe
jne 0x14006f780
mov qword [rsi + 0x30], rcx
mov qword [rsi + 0x38], 0
mov esi, 1
jmp 0x14006f5bd