Function at 0x1400c4040
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0x20
mov qword [rsp + 0x40], rbp
mov rbp, rcx
movsxd rsi, r9d
mov rbx, r8
mov rdi, rdx
cmp rdx, r8
jne 0x1400c407c
mov r8d, 0x2f3
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_bn_bn_lib.c
lea rcx, str.a___b
call fcn.140186438
lea r14, [rbp - 1]
test rbp, r14
mov rbp, qword [rsp + 0x40]
je 0x1400c40a3
mov r8d, 0x2f4
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_bn_bn_lib.c
lea rcx, str._condition___condition___1____0
call fcn.140186438
mov ecx, dword [rdi + 8]
lea r8d, [rsi - 1]
mov eax, ecx
shr r14, 0x3f
xor eax, dword [rbx + 8]
lea r10, [r14 - 1]
and eax, r10d
movq xmm4, r10
xor ecx, eax
punpcklqdq xmm4, xmm4
mov dword [rdi + 8], ecx
xor dword [rbx + 8], eax
mov ecx, dword [rdi + 0x10]
mov eax, ecx
xor eax, dword [rbx + 0x10]
and eax, r10d
xor ecx, eax
mov dword [rdi + 0x10], ecx
xor dword [rbx + 0x10], eax
mov ecx, dword [rdi + 0x14]
mov edx, ecx
mov eax, dword [rbx + 0x14]
xor rdx, rax
and edx, 4
and rdx, r10
mov eax, edx
xor eax, ecx
mov dword [rdi + 0x14], eax
xor dword [rbx + 0x14], edx
cmp r8d, 9
ja case.default.0x1400c4113
lea rdx, [0x140000000]
movsxd rax, r8d
mov ecx, dword [rdx + rax*4 + 0xc437c]
add rcx, rdx
jmp rcx
mov edx, 0xa
lea ecx, [rsi - 0xa]
cmp esi, edx
jle 0x1400c41e3
cmp ecx, 2
jb 0x1400c41e3
mov r14, qword [rbx]
movsxd rax, r8d
mov qword [rsp + 0x48], r15
mov r15, qword [rdi]
lea r11, [r14 + 0x50]
lea r8, [r14 + rax*8]
lea rax, [r15 + rax*8]
lea r9, [r15 + 0x50]
cmp r11, rax
ja 0x1400c415a
cmp r8, r9
jae 0x1400c41de
cmp r11, rbx
ja 0x1400c4164
cmp r8, rbx
jae 0x1400c41de
cmp r11, rdi
ja 0x1400c416e
cmp r8, rdi
jae 0x1400c41de
cmp r9, rbx
ja 0x1400c4178
cmp rax, rbx
jae 0x1400c41de
cmp r9, rdi
ja 0x1400c4182
cmp rax, rdi
jae 0x1400c41de
and ecx, 0x80000001
jge 0x1400c4191
dec ecx
or ecx, 0xfffffffe
inc ecx
mov r8d, esi
sub r8d, ecx
mov eax, 0x50
nop dword [rax]
movdqu xmm2, xmmword [rax + r14]
add edx, 2
movdqu xmm1, xmmword [rax + r15]
lea rax, [rax + 0x10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm4
movdqa xmm0, xmm3
pxor xmm3, xmm2
pxor xmm0, xmm1
movdqu xmmword [rax + r15 - 0x10], xmm0
movdqu xmmword [rax + r14 - 0x10], xmm3
cmp edx, r8d
jl 0x1400c41a0
mov r15, qword [rsp + 0x48]
movsxd r9, edx
cmp r9, rsi
jge case.0x1400c4113.10
nop dword [rax + rax]
mov rax, qword [rdi]
mov rcx, qword [rax + r9*8]
lea rdx, [rax + r9*8]
mov rax, qword [rbx]
mov r8, qword [rax + r9*8]
xor r8, rcx
and r8, r10
xor rcx, r8
mov qword [rdx], rcx
mov rax, qword [rbx]
xor qword [rax + r9*8], r8
inc r9
cmp r9, rsi
jl 0x1400c41f0
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x48]
mov rcx, qword [r8 + 0x48]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x48], rcx
mov rax, qword [rbx]
xor qword [rax + 0x48], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x40]
mov rcx, qword [r8 + 0x40]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x40], rcx
mov rax, qword [rbx]
xor qword [rax + 0x40], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x38]
mov rcx, qword [r8 + 0x38]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x38], rcx
mov rax, qword [rbx]
xor qword [rax + 0x38], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x30]
mov rcx, qword [r8 + 0x30]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x30], rcx
mov rax, qword [rbx]
xor qword [rax + 0x30], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x28]
mov rcx, qword [r8 + 0x28]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x28], rcx
mov rax, qword [rbx]
xor qword [rax + 0x28], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x20]
mov rcx, qword [r8 + 0x20]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x20], rcx
mov rax, qword [rbx]
xor qword [rax + 0x20], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x18]
mov rcx, qword [r8 + 0x18]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x18], rcx
mov rax, qword [rbx]
xor qword [rax + 0x18], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 0x10]
mov rcx, qword [r8 + 0x10]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 0x10], rcx
mov rax, qword [rbx]
xor qword [rax + 0x10], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rdx, qword [rax + 8]
mov rcx, qword [r8 + 8]
xor rdx, rcx
and rdx, r10
xor rcx, rdx
mov qword [r8 + 8], rcx
mov rax, qword [rbx]
xor qword [rax + 8], rdx
mov rax, qword [rbx]
mov r8, qword [rdi]
mov rcx, qword [rax]
mov rdx, qword [r8]
xor rcx, rdx
and rcx, r10
xor rdx, rcx
mov qword [r8], rdx
mov rax, qword [rbx]
mov rbx, qword [rsp + 0x50]
xor qword [rax], rcx
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret