Function at 0x4697d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
movups xmmword [rsp + 0xc0], xmm6
mov rbx, r9
mov qword [rsp + 0x128], rdx
mov r12, rcx
mov r13, r8
call sym.EVP_CIPHER_CTX_get_cipher_data
mov r15, rbx
mov rsi, qword [rax + 0x218]
mov ebp, dword [rax + 0x210]
mov r14, rax
mov qword [rax + 0x218], 0xffffffffffffffff
and r15d, 0xf
je 0x469848
xor eax, eax
movups xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r12
call sym.EVP_CIPHER_CTX_encrypting
test eax, eax
je 0x4698c0
mov edi, 0x40
mov eax, edi
sub eax, ebp
mov qword [rsp + 0x48], rax
mov rdi, rax
cmp rsi, 0xffffffffffffffff
je 0x469b88
lea rax, [rsi + 0x24]
and rax, 0xfffffffffffffff0
cmp rax, rbx
jne 0x469825
cmp dword [r14 + 0x220], 0x301
ja 0x469d50
mov rax, rdi
mov rdx, r13
xor r10d, r10d
mov qword [rsp + 0x50], rbx
mov rdi, qword [rsp + 0x128]
lea rbp, [r14 + 0x1b4]
cmp rsi, rax
jbe 0x469bc3
jmp 0x469ba6
cmp rsi, 0xffffffffffffffff
je 0x469d00
movzx edx, byte [r14 + rsi + 0x21c]
movzx ecx, byte [r14 + rsi + 0x21d]
shl edx, 8
or edx, ecx
cmp edx, 0x301
jle 0x469cf0
cmp rbx, 0x24
jbe 0x469827
mov rcx, r12
add r13, 0x10
sub rbx, 0x10
call sym.EVP_CIPHER_CTX_iv_noconst
movdqu xmm1, xmmword [r13 - 0x10]
add qword [rsp + 0x128], 0x10
movups xmmword [rax], xmm1
mov rcx, r12
lea rax, [r14 + 0x1d0]
mov rbp, rbx
mov qword [rsp + 0x48], rax
lea r12, [r14 + 0x1b4]
lea rdi, [rsp + 0x9f]
call sym.EVP_CIPHER_CTX_iv_noconst
mov r9, r14
mov r8, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x128]
and rdi, 0xffffffffffffffe0
mov dword [rsp + 0x28], 0
call sym.aesni_cbc_encrypt
mov rax, qword [rsp + 0x128]
mov edx, 0xff
movdqu xmm1, xmmword [r14 + 0xf4]
movdqu xmm2, xmmword [r14 + 0x104]
movdqu xmm3, xmmword [r14 + 0x114]
movdqu xmm4, xmmword [r14 + 0x124]
movzx ecx, byte [rax + rbx - 1]
lea eax, [rbx - 0x15]
movdqu xmm5, xmmword [r14 + 0x134]
sub edx, eax
movdqu xmm6, xmmword [r14 + 0x144]
shr edx, 0x18
or edx, eax
movzx edx, dl
mov eax, edx
mov r8d, edx
mov dword [rsp + 0x58], edx
sub eax, ecx
xor r8d, ecx
xor eax, ecx
mov ecx, edx
or eax, r8d
xor eax, edx
sar eax, 0x1f
mov edx, eax
add eax, 1
mov dword [rsp + 0x60], eax
not edx
mov eax, r8d
mov r8, rsi
and eax, edx
lea rdx, [r14 + 0x220]
xor eax, ecx
mov rcx, r12
mov dword [rsp + 0x6c], eax
add eax, 0x15
sub rbp, rax
mov rax, rbp
mov byte [r14 + rsi + 0x21f], bpl
shr rax, 8
mov byte [r14 + rsi + 0x21e], al
lea rsi, [rbx - 0x14]
movups xmmword [r14 + 0x1b4], xmm1
movups xmmword [r14 + 0x1c4], xmm2
movups xmmword [r14 + 0x1d4], xmm3
movups xmmword [r14 + 0x1e4], xmm4
movups xmmword [r14 + 0x1f4], xmm5
movups xmmword [r14 + 0x204], xmm6
call sym.sha1_update
cmp rsi, 0x13f
ja 0x46a0d0
mov eax, dword [r14 + 0x1c8]
mov dword [rdi + 0x10], 0
pxor xmm0, xmm0
mov edx, dword [r14 + 0x210]
movups xmmword [rdi], xmm0
lea eax, [rax + rbp*8]
bswap eax
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x128]
mov rbx, rbp
mov qword [rsp + 0x70], r15
mov r15, r12
neg rbx
mov r12, rbp
lea r13, [rax + rbp]
mov rbp, rsi
mov rsi, r13
jmp 0x469abc
add rbx, 1
lea rax, [r12 + rbx]
cmp rbp, rax
jbe 0x469db0
mov edx, r10d
mov rax, rbx
mov r8, rbx
movzx ecx, byte [rsi + rbx]
mov r11d, edx
neg rax
shr r8, 0x38
lea r10d, [rdx + 1]
shr rax, 0x38
and rcx, r8
or rax, r8
not rax
and eax, 0x80
or rcx, rax
mov byte [r14 + r11 + 0x1d0], cl
cmp edx, 0x3f
jne 0x469aa8
mov eax, 7
mov rdx, qword [rsp + 0x48]
mov r8d, 1
mov rcx, r15
sub rax, rbx
sar rax, 0x3f
mov r13, rax
mov eax, dword [rsp + 0x50]
and eax, r13d
or dword [r14 + 0x20c], eax
call sym.sha1_block_data_order
lea rax, [rbx - 0x48]
mov edx, dword [r14 + 0x1b4]
add rbx, 1
sar rax, 0x3f
and rax, r13
and edx, eax
or dword [rdi], edx
mov edx, dword [r14 + 0x1b8]
and edx, eax
or dword [rdi + 4], edx
mov edx, dword [r14 + 0x1bc]
and edx, eax
or dword [rdi + 8], edx
mov edx, dword [r14 + 0x1c0]
and edx, eax
and eax, dword [r14 + 0x1c4]
or dword [rdi + 0x10], eax
lea rax, [r12 + rbx]
or dword [rdi + 0xc], edx
cmp rax, rbp
jae 0x46a230
xor r10d, r10d
jmp 0x469ab9
lea rbp, [r14 + 0x1b4]
cmp qword [rsp + 0x48], rbx
jae 0x469d68
mov rax, rdi
mov rdx, r13
xor r10d, r10d
mov rsi, rbx
mov r11, rsi
mov qword [rsp + 0x50], rbx
mov rdi, qword [rsp + 0x128]
sub r11, rax
cmp r11, 0x3f
ja 0x46a000
mov r8, rsi
mov rcx, rbp
sub r8, r10
call sym.sha1_update
cmp rbx, rsi
je 0x46a269
cmp r13, qword [rsp + 0x128]
je 0x469bf7
mov r8, rsi
lea rdx, [r13 + r15]
mov rcx, rdi
sub r8, r15
call sym.memcpy
mov r13, qword [rsp + 0x128]
mov rdx, rbp
add r13, rsi
mov rcx, r13
call sym.SHA1_Final
mov r8d, 0x14
mov rdx, r13
mov rcx, rbp
movdqu xmm1, xmmword [r14 + 0x154]
movdqu xmm2, xmmword [r14 + 0x164]
movdqu xmm3, xmmword [r14 + 0x174]
movdqu xmm4, xmmword [r14 + 0x184]
movdqu xmm5, xmmword [r14 + 0x194]
movups xmmword [r14 + 0x1b4], xmm1
movdqu xmm6, xmmword [r14 + 0x1a4]
movups xmmword [r14 + 0x1c4], xmm2
movups xmmword [r14 + 0x1d4], xmm3
movups xmmword [r14 + 0x1e4], xmm4
movups xmmword [r14 + 0x1f4], xmm5
movups xmmword [r14 + 0x204], xmm6
call sym.sha1_update
mov rdx, rbp
mov rcx, r13
call sym.SHA1_Final
lea rcx, [rsi + 0x14]
lea edx, [rbx - 1]
sub edx, ecx
cmp rbx, rcx
jbe 0x469cb4
lea r8, [rbx - 0x14]
movzx edx, dl
add rcx, qword [rsp + 0x128]
sub r8, rsi
call sym.memset
mov rcx, r12
call sym.EVP_CIPHER_CTX_iv_noconst
mov r8, qword [rsp + 0x50]
mov r9, r14
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov dword [rsp + 0x28], 1
call sym.aesni_cbc_encrypt
mov eax, 1
jmp 0x469827
cmp rbx, 0x14
jbe 0x469827
jmp 0x469919
mov rcx, r12
call sym.EVP_CIPHER_CTX_iv_noconst
mov r9, r14
mov r8, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x128]
mov dword [rsp + 0x28], 0
call sym.aesni_cbc_encrypt
mov rdx, qword [rsp + 0x128]
lea rcx, [r14 + 0x1b4]
mov r8, rbx
call sym.sha1_update
mov eax, 1
jmp 0x469827
lea rax, [rdi + 0x10]
lea rdx, [r13 + 0x10]
mov r10d, 0x10
jmp 0x469896
mov r8, rbx
mov rdx, r13
mov rcx, rbp
call sym.sha1_update
mov rcx, r12
call sym.EVP_CIPHER_CTX_iv_noconst
mov r9, r14
mov r8, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
mov rdx, qword [rsp + 0x128]
mov dword [rsp + 0x28], 1
call sym.aesni_cbc_encrypt
mov eax, 1
jmp 0x469827
mov rsi, rbp
mov rbp, r12
mov r12, r15
mov r15, qword [rsp + 0x70]
test rsi, rsi
mov eax, 1
cmovne rax, rsi
mov r11, rax
mov ebx, r10d
cmp r10d, 0x3f
ja 0x46a144
mov edx, 0x40
lea rax, [r14 + rbx + 0x1d0]
xor r9d, r9d
sub rdx, rbx
cmp edx, 8
jae 0x469fb8
test dl, 4
jne 0x46a246
test edx, edx
je 0x469e0f
mov byte [rax], 0
test dl, 2
jne 0x46a25b
lea rax, [r11 + 0x40]
mov r13, 0xffffffffffffffb7
sub rax, rbx
sub r13, rbp
lea rbx, [rax + r13]
mov r11, rax
sar rbx, 0x3f
cmp r10d, 0x38
ja 0x46a156
mov eax, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov r8d, 1
mov rcx, r12
mov dword [r14 + 0x20c], eax
call sym.sha1_block_data_order
mov r8d, dword [r14 + 0x1b8]
mov ecx, dword [r14 + 0x1bc]
mov edx, dword [r14 + 0x1c0]
mov eax, dword [r14 + 0x1c4]
movdqu xmm0, xmmword [r14 + 0x154]
and r8d, ebx
and ecx, ebx
or r8d, dword [rdi + 4]
movdqu xmm1, xmmword [r14 + 0x164]
or ecx, dword [rdi + 8]
and edx, ebx
and eax, ebx
or edx, dword [rdi + 0xc]
or eax, dword [rdi + 0x10]
movdqu xmm2, xmmword [r14 + 0x174]
and ebx, dword [r14 + 0x1b4]
movdqu xmm3, xmmword [r14 + 0x184]
or ebx, dword [rdi]
movdqu xmm4, xmmword [r14 + 0x194]
movdqu xmm5, xmmword [r14 + 0x1a4]
bswap eax
bswap r8d
mov dword [rdi + 0x10], eax
mov dword [rdi + 4], r8d
mov r8d, 0x14
bswap ecx
bswap edx
mov dword [rdi + 8], ecx
mov rcx, r12
mov dword [rdi + 0xc], edx
mov rdx, rdi
bswap ebx
mov dword [rdi], ebx
movups xmmword [r14 + 0x1b4], xmm0
movups xmmword [r14 + 0x1c4], xmm1
movups xmmword [r14 + 0x1d4], xmm2
movups xmmword [r14 + 0x1e4], xmm3
movups xmmword [r14 + 0x1f4], xmm4
movups xmmword [r14 + 0x204], xmm5
call sym.sha1_update
mov rdx, r12
mov rcx, rdi
call sym.SHA1_Final
mov edx, dword [rsp + 0x58]
mov r9d, 0xffffffec
xor r8d, r8d
mov rax, rdx
not rdx
add rdx, rsi
lea r10d, [rax + 0x14]
mov esi, dword [rsp + 0x6c]
sub rbp, rdx
add rdx, qword [rsp + 0x128]
sub r9d, ebp
add r10, rdx
lea r11d, [rdx + rbp - 1]
sub r9d, edx
nop dword [rax]
movzx ebx, byte [rdx]
mov eax, r11d
lea ebp, [r9 + rdx]
sub eax, edx
sar ebp, 0x1f
add rdx, 1
mov ecx, ebx
sar eax, 0x1f
xor cl, byte [rdi + r15]
xor ebx, esi
and eax, ebp
movzx ecx, cl
not ebp
and ecx, eax
and ebx, ebp
and eax, 1
or ecx, ebx
add r15, rax
or r8d, ecx
cmp rdx, r10
jne 0x469f68
mov eax, r8d
neg eax
sar eax, 0x1f
not eax
and eax, dword [rsp + 0x60]
jmp 0x469827
mov ecx, edx
mov qword [rax], 0
mov qword [rax + rcx - 8], 0
lea rcx, [rax + 8]
and rcx, 0xfffffffffffffff8
sub rax, rcx
add eax, edx
and eax, 0xfffffff8
cmp eax, 8
jb 0x469e0f
and eax, 0xfffffff8
xor edx, edx
mov r8d, edx
add edx, 8
mov qword [rcx + r8], r9
cmp edx, eax
jb 0x469fe8
jmp 0x469e0f
mov r8, qword [rsp + 0x48]
mov rcx, rbp
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x58], rax
call sym.sha1_update
mov rax, qword [rsp + 0x58]
mov rcx, r12
lea rdi, [r13 + rax]
call sym.EVP_CIPHER_CTX_iv_noconst
mov r11, qword [rsp + 0x50]
mov rcx, r13
mov r9, r14
mov qword [rsp + 0x30], rdi
mov rdx, qword [rsp + 0x128]
mov qword [rsp + 0x20], rax
mov rax, r11
mov qword [rsp + 0x28], rbp
shr rax, 6
mov r8, rax
call sym.aesni_cbc_sha1_enc
mov r11, qword [rsp + 0x50]
xor ecx, ecx
mov r10, qword [rsp + 0x60]
add r10, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x128]
mov r15, r11
shr r11, 0x1d
add r11d, dword [r14 + 0x1cc]
and r15, 0xffffffffffffffc0
lea rax, [r15*8]
add eax, dword [r14 + 0x1c8]
mov dword [r14 + 0x1c8], eax
mov rax, rbx
setb cl
add r10, r15
sub rax, r15
add rdi, r15
lea rdx, [r13 + r10]
mov qword [rsp + 0x50], rax
lea eax, [r11 + rcx]
mov dword [r14 + 0x1cc], eax
jmp 0x469bc3
sub rbx, 0x154
mov rdx, qword [rsp + 0x128]
mov rcx, r12
and rbx, 0xffffffffffffffc0
mov r8, rbx
mov ebx, 0x40
sub ebx, dword [r14 + 0x210]
add rbx, r8
mov r8, rbx
sub rbp, rbx
call sym.sha1_update
mov eax, dword [r14 + 0x1c8]
pxor xmm0, xmm0
add qword [rsp + 0x128], rbx
mov dword [rdi + 0x10], 0
mov edx, dword [r14 + 0x210]
lea eax, [rax + rbp*8]
movups xmmword [rdi], xmm0
bswap eax
mov dword [rsp + 0x50], eax
sub rsi, rbx
jne 0x469a80
mov r10d, edx
xor r11d, r11d
jmp 0x469dcd
mov r13, 0xffffffffffffffb7
sub r13, rbp
lea rbx, [r11 + r13]
sar rbx, 0x3f
lea rax, [rbp + 8]
mov edx, dword [rsp + 0x50]
mov rcx, r12
mov qword [rsp + 0x78], r11
sub rax, r11
mov r8d, 1
movq xmm6, rbx
sar rax, 0x3f
punpcklqdq xmm6, xmm6
and edx, eax
or dword [r14 + 0x20c], edx
mov rdx, qword [rsp + 0x48]
shufps xmm6, xmm6, 0x88
mov qword [rsp + 0x70], rax
call sym.sha1_block_data_order
mov rax, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
movdqu xmm2, xmmword [r14 + 0x1b4]
movq xmm0, rax
and rax, rbx
and eax, dword [r14 + 0x1c4]
or dword [rdi + 0x10], eax
punpcklqdq xmm0, xmm0
mov rax, qword [rsp + 0x48]
lea rbx, [r11 + r13 + 0x40]
shufps xmm0, xmm0, 0x88
pand xmm0, xmm6
sar rbx, 0x3f
pand xmm0, xmm2
por xmm0, xmmword [rdi]
movups xmmword [rdi], xmm0
mov qword [r14 + 0x1d0], 0
mov qword [r14 + 0x1d8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
jmp 0x469e35
mov rsi, rbp
xor r10d, r10d
mov rbp, r12
mov r12, r15
mov r15, qword [rsp + 0x70]
jmp 0x469dbe
mov edx, edx
mov dword [rax], 0
mov dword [rax + rdx - 4], 0
jmp 0x469e0f
mov edx, edx
xor ecx, ecx
mov word [rax + rdx - 2], cx
jmp 0x469e0f
mov qword [rsp + 0x128], rdi
mov rbx, qword [rsp + 0x50]
add r13, r15
jmp 0x469d76