Function at 0x14006f840
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov eax, dword [rcx + 0x40]
mov r10d, eax
sar r10d, 0x1f
and r10d, eax
mov rsi, rax
nop
test esi, esi
jle 0x14006f87e
mov r11, qword [rcx + 0x38]
lea rdi, [rsi - 1]
cmp qword [r11 + rsi*8 - 8], 0
mov rsi, rdi
je 0x14006f860
inc edi
mov r10d, edi
jmp 0x14006f88e
test eax, eax
js 0x14006f88a
xor r10d, r10d
jmp 0x14006f942
mov r11, qword [rcx + 0x38]
movsxd rax, r10d
shl r10d, 6
mov r11, qword [r11 + rax*8 - 8]
xor eax, eax
test r11, r11
setne al
or eax, r10d
xor r10d, r10d
mov rsi, r11
shr rsi, 0x20
setne r10b
cmove rsi, r11
shl r10d, 5
mov rdi, rsi
shr rdi, 0x10
xor r11d, r11d
cmp rsi, 0x10000
setae r11b
cmovb rdi, rsi
shl r11d, 4
mov rbx, rdi
shr rbx, 8
xor esi, esi
cmp rdi, 0x100
setae sil
cmovb rbx, rdi
mov rdi, rbx
shr rdi, 4
xor r14d, r14d
cmp rbx, 0x10
setae r14b
cmovb rdi, rbx
mov rbx, rdi
shr rbx, 2
xor ebp, ebp
cmp rdi, 4
cmovb rbx, rdi
setae bpl
add ebp, ebp
or r10d, eax
or r10d, r11d
lea eax, [r10 + rsi*8]
lea r10d, [rax + r14*4]
add r10d, 0xffffffc0
or r10d, ebp
cmp rbx, 2
sbb r10d, 0xffffffff
add r10d, 7
shr r10d, 3
mov eax, 0x156
cmp r10, r9
jne 0x14006fae0
pxor xmm0, xmm0
movdqu xmmword [rdx + 0x30], xmm0
movdqu xmmword [rdx + 0x20], xmm0
movdqu xmmword [rdx + 0x10], xmm0
movdqu xmmword [rdx], xmm0
mov qword [rdx + 0x40], 0
test r9, r9
je 0x14006fa21
cmp r9, 8
jb 0x14006f998
lea rax, [r8 + r9]
cmp rax, rdx
jbe 0x14006fb17
lea rax, [rdx + r9]
cmp rax, r8
jbe 0x14006fb17
xor eax, eax
mov r10, rax
not r10
add r10, r9
mov r11, r9
and r11, 3
je 0x14006f9d6
lea rsi, [rdx + rax]
neg rax
lea rdi, [r9 + r8]
dec rdi
xor ebx, ebx
nop dword [rax]
movzx ebp, byte [rdi + rax]
mov byte [rsi + rbx], bpl
inc rbx
dec rax
cmp r11, rbx
jne 0x14006f9c0
neg rax
cmp r10, 3
jb 0x14006fa21
sub r9, rax
add rax, rdx
add rax, 3
nop word cs:[rax + rax]
movzx r10d, byte [r8 + r9 - 1]
mov byte [rax - 3], r10b
movzx r10d, byte [r8 + r9 - 2]
mov byte [rax - 2], r10b
movzx r10d, byte [r8 + r9 - 3]
mov byte [rax - 1], r10b
movzx r10d, byte [r8 + r9 - 4]
mov byte [rax], r10b
add rax, 4
add r9, 0xfffffffffffffffc
jne 0x14006f9f0
movsxd r8, dword [rcx + 0x40]
mov eax, 0x160
test r8, r8
je 0x14006fae0
mov r9, qword [rcx + 0x38]
cmp r8d, 1
jne 0x14006fa44
xor ecx, ecx
xor r10d, r10d
jmp 0x14006faab
mov r11, r8
and r11, 0xfffffffffffffffe
xor ecx, ecx
xor r10d, r10d
mov rsi, qword [r9 + r10*8]
mov rdi, qword [r9 + r10*8 + 8]
mov rbx, qword [rdx + r10*8]
mov r14, qword [rdx + r10*8 + 8]
mov r15, rbx
xor r15, rsi
mov r12, rbx
sub r12, rsi
xor r12, rbx
or r12, r15
xor r12, rbx
sar r12, 0x3f
test r15, r15
cmove r12d, ecx
mov rsi, r14
xor rsi, rdi
mov rcx, r14
sub rcx, rdi
xor rcx, r14
or rcx, rsi
xor rcx, r14
sar rcx, 0x3f
test rsi, rsi
cmove ecx, r12d
add r10, 2
cmp r11, r10
jne 0x14006fa50
test r8b, 1
je 0x14006fadc
mov r8, qword [r9 + r10*8]
mov rdx, qword [rdx + r10*8]
mov r9, rdx
xor r9, r8
mov r10, rdx
sub r10, r8
xor r10, rdx
or r10, r9
xor r10, rdx
sar r10, 0x3f
test r9, r9
cmove r10d, ecx
mov ecx, r10d
test ecx, ecx
js 0x14006fb10
mov dword [rsp + 0x20], eax
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_ec_simple.c
xor esi, esi
mov ecx, reloc.WS2_32.dll_ntohs
xor edx, edx
mov r8d, 0x80
call fcn.1400490c0
mov eax, esi
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov esi, 1
jmp 0x14006faff
cmp r9, 0x20
jae 0x14006fb24
xor eax, eax
jmp 0x14006fbd8
mov rax, r9
and rax, 0xffffffffffffffe0
lea r10, [r9 + r8]
add r10, 0xfffffffffffffff0
xor r11d, r11d
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r10 - 0x10]
movdqu xmm2, xmmword [r10]
movdqa xmm3, xmm2
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqa xmm3, xmm1
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqu xmmword [rdx + r11], xmm2
movdqu xmmword [rdx + r11 + 0x10], xmm1
add r11, 0x20
add r10, 0xffffffffffffffe0
cmp rax, r11
jne 0x14006fb40
cmp rax, r9
je 0x14006fa21
test r9b, 0x18
je 0x14006f99a
mov r10, rax
mov rax, r9
and rax, 0xfffffffffffffff8
mov r11, r9
sub r11, r10
add r11, r8
add r11, 0xfffffffffffffff8
pxor xmm0, xmm0
nop word cs:[rax + rax]
movq xmm1, qword [r11]
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movq qword [rdx + r10], xmm1
add r10, 8
add r11, 0xfffffffffffffff8
cmp rax, r10
jne 0x14006fc00
cmp rax, r9
je 0x14006fa21
jmp 0x14006f99a