Function at 0x14003c570
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
movdqa xmmword [rsp + 0x30], xmm6
movsxd rax, dword [rcx + 0x108]
test rax, rax
jle 0x14003c5b9
mov r10, qword [rcx + 0x100]
xor r11d, r11d
mov esi, eax
nop dword [rax + rax]
mov edi, esi
cmp qword [r10 + rdi*8 - 8], 0
jne 0x14003c5ca
lea edi, [rsi - 1]
cmp esi, 1
mov esi, edi
jg 0x14003c5a0
jmp 0x14003c679
test eax, eax
je 0x14003c850
mov r10, qword [rcx + 0x100]
mov esi, eax
movsxd r11, esi
shl esi, 6
mov rdi, qword [r10 + r11*8 - 8]
xor r10d, r10d
test rdi, rdi
setne r10b
or r10d, esi
xor r11d, r11d
mov rbx, rdi
shr rbx, 0x20
setne r11b
cmove rbx, rdi
shl r11d, 5
mov r14, rbx
shr r14, 0x10
xor esi, esi
cmp rbx, 0x10000
setae sil
cmovb r14, rbx
shl esi, 4
mov rbx, r14
shr rbx, 8
xor edi, edi
cmp r14, 0x100
setae dil
cmovb rbx, r14
mov r14, rbx
shr r14, 4
xor r15d, r15d
cmp rbx, 0x10
setae r15b
cmovb r14, rbx
mov rbx, r14
shr rbx, 2
xor r12d, r12d
cmp r14, 4
setae r12b
cmovb rbx, r14
or r11d, r10d
or r11d, esi
cmp rbx, 2
lea r10d, [r11 + rdi*8]
lea r10d, [r10 + r15*4]
lea r11d, [r10 + r12*2]
sbb r11d, 0xffffffff
add r11d, 0xffffffc7
shr r11d, 3
mov r10d, 0x44
cmp r9, r11
jne 0x14003c862
lea r10, [rax*8]
cmp r9, r10
ja 0x14003c979
cmp r9, 8
jb 0x14003c79a
lea r11, [r9 - 8]
cmp r11, 0x77
jbe 0x14003c6d6
lea r10, [r8 + r9]
cmp rdx, r10
jae 0x14003c897
mov r10, r9
and r10, 0xfffffffffffffff8
add r10, rdx
mov esi, r9d
and esi, 7
add rsi, r8
cmp rsi, r10
jae 0x14003c897
mov r10, rdx
nop dword [rax]
mov r11, qword [r8 + r9 - 8]
add r9, 0xfffffffffffffff8
bswap r11
mov qword [r10], r11
add r10, 8
dec rax
cmp r9, 7
ja 0x14003c6e0
test r9, r9
jne 0x14003c7a6
shl rax, 3
test rax, rax
je 0x14003c727
mov rsi, rcx
mov rcx, r10
mov rdi, rdx
xor edx, edx
mov r8, rax
call fcn.1402a4b90
mov rcx, rsi
mov rdx, rdi
movsxd rax, dword [rcx + 0x108]
mov r10d, 0x4b
test rax, rax
je 0x14003c862
mov r8, qword [rcx + 0x100]
xor ecx, ecx
xor r9d, r9d
nop dword [rax]
mov r11, qword [r8 + r9*8]
mov rsi, qword [rdx + r9*8]
xor edi, edi
mov rbx, rsi
sub rbx, r11
sete dil
neg rdi
xor r11, rsi
xor rbx, rsi
or rbx, r11
xor rbx, rsi
sar rbx, 0x3f
xor rcx, rbx
and rcx, rdi
xor rcx, rbx
inc r9
cmp rax, r9
jne 0x14003c750
mov esi, 1
test ecx, ecx
jns 0x14003c862
jmp 0x14003c882
mov r10, rdx
test r9, r9
je 0x14003c705
mov r11d, r9d
and r11d, 3
cmp r9, 4
jae 0x14003c7b9
xor edi, edi
xor esi, esi
jmp 0x14003c80a
and r9, 0xfffffffffffffffc
xor edi, edi
xor esi, esi
nop word cs:[rax + rax]
movzx ebx, byte [r8 + rdi]
shl rsi, 0x10
shl ebx, 8
or rbx, rsi
movzx esi, byte [r8 + rdi + 1]
or rsi, rbx
movzx ebx, byte [r8 + rdi + 2]
shl rsi, 0x10
shl ebx, 8
or rbx, rsi
movzx esi, byte [r8 + rdi + 3]
or rsi, rbx
add rdi, 4
cmp r9, rdi
jne 0x14003c7d0
test r11, r11
je 0x14003c834
add r8, rdi
xor r9d, r9d
nop word cs:[rax + rax]
shl rsi, 8
movzx edi, byte [r8 + r9]
or rsi, rdi
inc r9
cmp r11, r9
jne 0x14003c820
mov qword [r10], rsi
add r10, 8
dec rax
shl rax, 3
test rax, rax
jne 0x14003c70e
jmp 0x14003c727
xor r11d, r11d
mov r10d, 0x44
cmp r9, r11
je 0x14003c688
mov dword [rsp + 0x20], r10d
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmoduleec_scalar.c.inc
xor esi, esi
mov ecx, reloc.WS2_32.dll_ntohs
xor edx, edx
mov r8d, 0x85
call fcn.1400885a0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
shr r11, 3
inc r11
mov rsi, r11
and rsi, 0xfffffffffffffffc
lea rdi, [rsi*8]
lea r10, [rdx + rsi*8]
movq xmm0, rax
lea rax, [r9 + r8]
add rax, 0xfffffffffffffff0
sub r9, rdi
pxor xmm1, xmm1
xor edi, edi
pcmpeqd xmm3, xmm3
pxor xmm2, xmm2
nop
movdqu xmm4, xmmword [rax - 0x10]
movdqu xmm5, xmmword [rax]
movdqa xmm6, xmm5
punpcklbw xmm6, xmm1
pshufd xmm6, xmm6, 0x4e
pshuflw xmm6, xmm6, 0x1b
pshufhw xmm6, xmm6, 0x1b
punpckhbw xmm5, xmm1
pshufd xmm5, xmm5, 0x4e
pshuflw xmm5, xmm5, 0x1b
pshufhw xmm5, xmm5, 0x1b
packuswb xmm5, xmm6
movdqa xmm6, xmm4
punpcklbw xmm6, xmm1
pshufd xmm6, xmm6, 0x4e
pshuflw xmm6, xmm6, 0x1b
pshufhw xmm6, xmm6, 0x1b
punpckhbw xmm4, xmm1
pshufd xmm4, xmm4, 0x4e
pshuflw xmm4, xmm4, 0x1b
pshufhw xmm4, xmm4, 0x1b
packuswb xmm4, xmm6
movdqu xmmword [rdx + rdi*8], xmm5
movdqu xmmword [rdx + rdi*8 + 0x10], xmm4
paddq xmm0, xmm3
paddq xmm2, xmm3
add rdi, 4
add rax, 0xffffffffffffffe0
cmp rsi, rdi
jne 0x14003c8d0
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
movq rax, xmm0
cmp r11, rsi
jne 0x14003c6e0
jmp 0x14003c6fc
call fcn.1402b5ec8
int3