Function at 0x696230
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
mov edi, 0x20
movzx eax, byte [rcx + 0x107]
movdqu xmm1, xmmword [rcx + 0xf8]
mov rsi, r8
mov r8d, eax
add eax, 1
mov rbx, rcx
shr eax, 8
mov r13, rdx
lea ecx, [r8 + 1]
movups xmmword [rsp + 0x40], xmm1
mov edx, eax
movzx eax, byte [rbx + 0x106]
mov byte [rbx + 0x107], cl
mov r12, r9
mov dword [rsp + 0x34], 0x10
add eax, edx
mov byte [rbx + 0x106], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x105]
add eax, edx
mov byte [rbx + 0x105], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x104]
add eax, edx
mov byte [rbx + 0x104], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x103]
add eax, edx
mov byte [rbx + 0x103], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x102]
add eax, edx
mov byte [rbx + 0x102], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x101]
add eax, edx
mov byte [rbx + 0x101], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x100]
add eax, edx
mov byte [rbx + 0x100], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xff]
add eax, edx
mov byte [rbx + 0xff], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfe]
add eax, edx
mov byte [rbx + 0xfe], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfd]
add eax, edx
mov byte [rbx + 0xfd], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfc]
add eax, edx
mov byte [rbx + 0xfc], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfb]
add eax, edx
mov byte [rbx + 0xfb], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfa]
add eax, edx
mov byte [rbx + 0xfa], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xf9]
add eax, edx
mov byte [rbx + 0xf9], al
shr eax, 8
add byte [rbx + 0xf8], al
movdqu xmm2, xmmword [rbx + 0xf8]
cmp qword [rbx + 0xd0], 0x10
movups xmmword [rsp + 0x50], xmm2
je 0x6964fe
movzx ecx, cl
movzx eax, byte [rbx + 0x106]
add r8d, 2
mov edi, 0x30
add ecx, 1
mov byte [rbx + 0x107], r8b
shr ecx, 8
add eax, ecx
mov byte [rbx + 0x106], al
shr eax, 8
mov ecx, eax
movzx eax, byte [rbx + 0x105]
add eax, ecx
mov byte [rbx + 0x105], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x104]
add eax, edx
mov byte [rbx + 0x104], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x103]
add eax, edx
mov byte [rbx + 0x103], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x102]
add eax, edx
mov byte [rbx + 0x102], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x101]
add eax, edx
mov byte [rbx + 0x101], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0x100]
add eax, edx
mov byte [rbx + 0x100], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xff]
add eax, edx
mov byte [rbx + 0xff], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfe]
add eax, edx
mov byte [rbx + 0xfe], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfd]
add eax, edx
mov byte [rbx + 0xfd], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfc]
add eax, edx
mov byte [rbx + 0xfc], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfb]
add eax, edx
mov byte [rbx + 0xfb], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xfa]
add eax, edx
mov byte [rbx + 0xfa], al
shr eax, 8
mov edx, eax
movzx eax, byte [rbx + 0xf9]
add eax, edx
mov byte [rbx + 0xf9], al
shr eax, 8
add byte [rbx + 0xf8], al
movdqu xmm3, xmmword [rbx + 0xf8]
movups xmmword [rsp + 0x60], xmm3
mov dword [rsp + 0x20], edi
lea r14, [rsp + 0x70]
lea r9, [rsp + 0x40]
mov rcx, qword [rbx + 0xa8]
lea r8, [rsp + 0x34]
mov rdx, r14
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x34], edi
je 0x696540
xor eax, eax
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rbx + 0xd0]
lea rbp, [rbx + 0xd8]
mov rdx, r14
mov rcx, rbp
mov r8, rdi
call sym.memcpy
movdqu xmm4, xmmword [rsp + rdi + 0x70]
movups xmmword [rbx + 0xf8], xmm4
test byte [rbx + 0x1c], 1
je 0x696ae3
test r13, r13
je 0x6967ec
test rsi, rsi
je 0x6967ec
cmp rdi, rsi
mov rdx, rsi
cmovbe rdx, rdi
test rdx, rdx
je 0x696786
lea rax, [r13 + 0x10]
cmp rax, rbp
lea rax, [rbx + 0xe8]
setbe cl
cmp r13, rax
setae al
or cl, al
je 0x69724b
lea rax, [rdx - 1]
cmp rax, 0xe
jbe 0x69724b
movdqu xmm0, xmmword [rbx + 0xd8]
movdqu xmm5, xmmword [r13]
mov rax, rdx
shr rax, 4
pxor xmm0, xmm5
movups xmmword [rbx + 0xd8], xmm0
cmp rax, 1
je 0x696604
movdqu xmm0, xmmword [rbx + 0xe8]
movdqu xmm5, xmmword [r13 + 0x10]
pxor xmm0, xmm5
movups xmmword [rbx + 0xe8], xmm0
mov rax, rdx
and rax, 0xfffffffffffffff0
test dl, 0xf
je 0x696786
movzx ecx, byte [r13 + rax]
xor byte [rbx + rax + 0xd8], cl
lea rcx, [rax + 1]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 1]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 2]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 2]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 3]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 3]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 4]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 4]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 5]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 5]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 6]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 6]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 7]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 7]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 8]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 8]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 9]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 9]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xa]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 0xa]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xb]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 0xb]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xc]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 0xc]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xd]
cmp rdx, rcx
jbe 0x696786
movzx r8d, byte [r13 + rax + 0xd]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xe]
cmp rdx, rcx
jbe 0x696786
movzx eax, byte [r13 + rax + 0xe]
xor byte [rbx + rcx + 0xd8], al
cmp rdi, rsi
jae 0x6967ec
lea rax, [r13 + rdi + 0x10]
lea rcx, [rbx + 0xf8]
sub rsi, rdi
lea rdx, [r13 + rdi]
cmp rax, rcx
lea rax, [rbx + 0x108]
setbe cl
cmp rdx, rax
setae al
or cl, al
je 0x697268
cmp rsi, 0x10
mov eax, 0x10
cmovbe rax, rsi
sub rax, 1
cmp rax, 0xe
jbe 0x697268
movdqu xmm0, xmmword [rdx]
movdqu xmm5, xmmword [rbx + 0xf8]
pxor xmm0, xmm5
movups xmmword [rbx + 0xf8], xmm0
test r12, r12
je 0x696a84
cmp qword [rsp + 0x140], 0
je 0x696a84
cmp rdi, qword [rsp + 0x140]
mov rdx, rdi
cmova rdx, qword [rsp + 0x140]
test rdx, rdx
je 0x696a10
lea rax, [r12 + 0x10]
cmp rax, rbp
lea rax, [rbx + 0xe8]
setbe cl
cmp r12, rax
setae al
or cl, al
je 0x69722f
lea rax, [rdx - 1]
cmp rax, 0xe
jbe 0x69722f
movdqu xmm0, xmmword [rbx + 0xd8]
movdqu xmm5, xmmword [r12]
mov rax, rdx
shr rax, 4
pxor xmm0, xmm5
movups xmmword [rbx + 0xd8], xmm0
cmp rax, 1
je 0x69688f
movdqu xmm0, xmmword [rbx + 0xe8]
movdqu xmm4, xmmword [r12 + 0x10]
pxor xmm0, xmm4
movups xmmword [rbx + 0xe8], xmm0
mov rax, rdx
and rax, 0xfffffffffffffff0
test dl, 0xf
je 0x696a10
movzx ecx, byte [r12 + rax]
xor byte [rbx + rax + 0xd8], cl
lea rcx, [rax + 1]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 1]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 2]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 2]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 3]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 3]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 4]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 4]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 5]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 5]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 6]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 6]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 7]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 7]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 8]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 8]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 9]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 9]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xa]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 0xa]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xb]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 0xb]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xc]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 0xc]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xd]
cmp rdx, rcx
jbe 0x696a10
movzx r8d, byte [r12 + rax + 0xd]
xor byte [rbx + rcx + 0xd8], r8b
lea rcx, [rax + 0xe]
cmp rdx, rcx
jbe 0x696a10
movzx eax, byte [r12 + rax + 0xe]
xor byte [rbx + rcx + 0xd8], al
cmp rdi, qword [rsp + 0x140]
jae 0x696a84
mov rax, qword [rsp + 0x140]
lea r8, [rbx + 0xf8]
lea rdx, [r12 + rdi + 0x10]
lea rcx, [r12 + rdi]
sub rax, rdi
cmp r8, rdx
lea rdx, [rbx + 0x108]
setae r8b
cmp rcx, rdx
setae dl
or r8b, dl
je 0x6973c0
cmp rax, 0x10
mov edx, 0x10
cmovbe rdx, rax
sub rdx, 1
cmp rdx, 0xe
jbe 0x6973c0
movdqu xmm0, xmmword [rcx]
movdqu xmm4, xmmword [rbx + 0xf8]
pxor xmm0, xmm4
movups xmmword [rbx + 0xf8], xmm0
mov dword [rsp + 0x28], 0xffffffff
xor r8d, r8d
xor edx, edx
mov r9, rbp
mov qword [rsp + 0x20], 0
mov rcx, qword [rbx + 0xa8]
call sym.EVP_CipherInit_ex
test eax, eax
je 0x69652a
mov dword [rsp + 0x28], 0xffffffff
xor r8d, r8d
xor edx, edx
mov r9, rbp
mov qword [rsp + 0x20], 0
mov rcx, qword [rbx + 0xb0]
call sym.EVP_CipherInit_ex
test eax, eax
setne al
movzx eax, al
jmp 0x69652c
mov rax, qword [rsp + 0x148]
or rax, r12
or rax, r13
je 0x696de9
cmp rdi, 0x10
pxor xmm0, xmm0
mov edi, 0x20
mov eax, 0x30
mov qword [rsp + 0xb0], 0
cmovne edi, eax
lea r14, [rbx + 0x120]
mov qword [rsp + 0xb8], 0
mov byte [rsp + 0xb3], 1
movdqu xmm5, xmmword [rsp + 0xb0]
mov qword [r14 + 0x20], 0
mov qword [r14 + 0x28], 0
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0x38], 0x10
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xc8], 0
mov byte [rsp + 0xc3], 2
mov dword [rsp + 0x3c], 0x10
movups xmmword [rbx + 0x120], xmm0
movups xmmword [rbx + 0x130], xmm5
cmp edi, 0x30
jne 0x696bbf
movdqu xmm0, xmmword [rbx + 0x140]
pxor xmm0, xmmword [rsp + 0xc0]
movups xmmword [rbx + 0x140], xmm0
mov dword [rsp + 0x20], edi
lea r15, [rsp + 0x3c]
mov r9, r14
mov rdx, r14
mov rcx, qword [rbx + 0xb8]
mov r8, r15
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x3c], edi
jne 0x69652a
test r13, r13
je 0x697200
test rsi, rsi
mov r8, rsi
sete dl
cmp qword [rsp + 0x148], 0
mov rax, r8
je 0x69721e
add rax, qword [rsp + 0x150]
test r12, r12
je 0x69720d
add rax, qword [rsp + 0x140]
bswap eax
mov dword [rbx + 0x108], eax
xor eax, eax
lea rdi, [rbx + 0xa8]
mov word [rbx + 0x10c], ax
movzx eax, byte [rbx + 0xd0]
mov byte [rbx + 0x10e], 0
mov qword [rbx + 0x118], 8
add eax, 0x10
mov byte [rbx + 0x10f], al
test dl, dl
jne 0x696c7d
mov rdx, r13
mov rcx, rdi
call sym.ctr_BCC_update.part.0
test eax, eax
je 0x69652a
cmp qword [rsp + 0x148], 0
je 0x696cb3
cmp qword [rsp + 0x150], 0
je 0x696cb3
mov r8, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x148]
mov rcx, rdi
call sym.ctr_BCC_update.part.0
test eax, eax
je 0x69652a
test r12, r12
je 0x696cde
cmp qword [rsp + 0x140], 0
je 0x696cde
mov r8, qword [rsp + 0x140]
mov rdx, r12
mov rcx, rdi
call sym.ctr_BCC_update.part.0
test eax, eax
je 0x69652a
mov r8d, 1
lea rdx, [0x008649e0]
mov rcx, rdi
call sym.ctr_BCC_update.part.0
test eax, eax
je 0x69652a
mov rax, qword [rbx + 0x118]
test rax, rax
jne 0x697534
mov dword [rsp + 0x28], 0xffffffff
xor r8d, r8d
xor edx, edx
mov r9, r14
mov qword [rsp + 0x20], 0
mov rcx, qword [rbx + 0xa8]
call sym.EVP_CipherInit_ex
test eax, eax
je 0x69652a
mov r9, qword [rbx + 0xd0]
lea rdi, [rsp + 0x38]
mov rdx, r14
mov dword [rsp + 0x20], 0x10
mov rcx, qword [rbx + 0xa8]
mov r8, rdi
add r9, r14
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x38], 0x10
jne 0x69652a
mov dword [rsp + 0x20], 0x10
lea r12, [rbx + 0x130]
mov r9, r14
mov r8, rdi
mov rcx, qword [rbx + 0xa8]
mov rdx, r12
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x38], 0x10
jne 0x69652a
cmp qword [rbx + 0xd0], 0x10
je 0x696de9
mov dword [rsp + 0x20], 0x10
mov rcx, qword [rbx + 0xa8]
mov r9, r12
mov r8, rdi
lea rdx, [rbx + 0x140]
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x38], 0x10
jne 0x69652a
test rsi, rsi
je 0x696a84
mov rcx, qword [rbx + 0x90]
test rcx, rcx
je 0x696a84
mov r8, qword [rbx + 0xd0]
lea r9, [rbx + 0x120]
cmp rcx, r8
mov rax, r8
cmovbe rax, rcx
test rax, rax
je 0x697046
lea rdx, [rbx + 0xe8]
cmp r9, rdx
lea rdx, [rbx + 0x130]
setae r10b
cmp rbp, rdx
setae dl
or r10b, dl
je 0x697518
lea rdx, [rax - 1]
cmp rdx, 0xe
jbe 0x697518
movdqu xmm0, xmmword [rbx + 0xd8]
movdqu xmm5, xmmword [rbx + 0x120]
mov rdx, rax
shr rdx, 4
pxor xmm0, xmm5
movups xmmword [rbx + 0xd8], xmm0
cmp rdx, 1
je 0x696e98
movdqu xmm5, xmmword [rbx + 0xe8]
movdqu xmm0, xmmword [rbx + 0x130]
pxor xmm0, xmm5
movups xmmword [rbx + 0xe8], xmm0
mov rdx, rax
and rdx, 0xfffffffffffffff0
test al, 0xf
je 0x697046
movzx r10d, byte [rbx + rdx + 0x120]
xor byte [rbx + rdx + 0xd8], r10b
lea r10, [rdx + 1]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x121]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 2]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x122]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 3]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x123]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 4]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x124]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 5]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x125]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 6]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x126]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 7]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x127]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 8]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x128]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 9]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x129]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 0xa]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x12a]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 0xb]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x12b]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 0xc]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x12c]
xor byte [rbx + r10 + 0xd8], r11b
lea r10, [rdx + 0xd]
cmp rax, r10
jbe 0x697046
movzx r11d, byte [rbx + rdx + 0x12d]
add rdx, 0xe
xor byte [rbx + r10 + 0xd8], r11b
cmp rax, rdx
jbe 0x697046
movzx eax, byte [rbx + rdx + 0x120]
xor byte [rbx + rdx + 0xd8], al
cmp rcx, r8
jbe 0x696a84
mov rax, rcx
lea r10, [rbx + 0xf8]
lea rdx, [rbx + r8 + 0x130]
sub rax, r8
lea rcx, [rbx + r8 + 0x120]
cmp r10, rdx
lea rdx, [rbx + 0x108]
setae r10b
cmp rcx, rdx
setae dl
or r10b, dl
je 0x6970a0
cmp rax, 0x10
mov edx, 0x10
cmovbe rdx, rax
sub rdx, 1
cmp rdx, 0xe
ja 0x696a6d
movzx edx, byte [rbx + r8 + 0x120]
xor byte [rbx + 0xf8], dl
cmp rax, 1
je 0x696a84
movzx edx, byte [r9 + r8 + 1]
xor byte [rbx + 0xf9], dl
cmp rax, 2
je 0x696a84
movzx edx, byte [r9 + r8 + 2]
xor byte [rbx + 0xfa], dl
cmp rax, 3
je 0x696a84
movzx edx, byte [r9 + r8 + 3]
xor byte [rbx + 0xfb], dl
cmp rax, 4
je 0x696a84
movzx edx, byte [r9 + r8 + 4]
xor byte [rbx + 0xfc], dl
cmp rax, 5
je 0x696a84
movzx edx, byte [r9 + r8 + 5]
xor byte [rbx + 0xfd], dl
cmp rax, 6
je 0x696a84
movzx edx, byte [r9 + r8 + 6]
xor byte [rbx + 0xfe], dl
cmp rax, 7
je 0x696a84
movzx edx, byte [r9 + r8 + 7]
xor byte [rbx + 0xff], dl
cmp rax, 8
je 0x696a84
movzx edx, byte [r9 + r8 + 8]
xor byte [rbx + 0x100], dl
cmp rax, 9
je 0x696a84
movzx edx, byte [r9 + r8 + 9]
xor byte [rbx + 0x101], dl
cmp rax, 0xa
je 0x696a84
movzx edx, byte [r9 + r8 + 0xa]
xor byte [rbx + 0x102], dl
cmp rax, 0xb
je 0x696a84
movzx edx, byte [r9 + r8 + 0xb]
xor byte [rbx + 0x103], dl
cmp rax, 0xc
je 0x696a84
movzx edx, byte [r9 + r8 + 0xc]
xor byte [rbx + 0x104], dl
cmp rax, 0xd
je 0x696a84
movzx edx, byte [r9 + r8 + 0xd]
xor byte [rbx + 0x105], dl
cmp rax, 0xe
je 0x696a84
movzx edx, byte [r9 + r8 + 0xe]
xor byte [rbx + 0x106], dl
cmp rax, 0xf
jbe 0x696a84
movzx eax, byte [r9 + r8 + 0xf]
xor byte [rbx + 0x107], al
jmp 0x696a84
mov edx, 1
xor r8d, r8d
jmp 0x696c01
mov qword [rsp + 0x140], 0
jmp 0x696c2c
mov qword [rsp + 0x150], 0
jmp 0x696c1b
xor eax, eax
movzx ecx, byte [r12 + rax]
xor byte [rbx + rax + 0xd8], cl
add rax, 1
cmp rdx, rax
jne 0x697231
jmp 0x696a10
xor eax, eax
movzx ecx, byte [r13 + rax]
xor byte [rbx + rax + 0xd8], cl
add rax, 1
cmp rdx, rax
jne 0x69724d
jmp 0x696786
movzx eax, byte [rdx]
xor byte [rbx + 0xf8], al
cmp rsi, 1
je 0x6967ec
movzx eax, byte [r13 + rdi + 1]
xor byte [rbx + 0xf9], al
cmp rsi, 2
je 0x6967ec
movzx eax, byte [r13 + rdi + 2]
xor byte [rbx + 0xfa], al
cmp rsi, 3
je 0x6967ec
movzx eax, byte [r13 + rdi + 3]
xor byte [rbx + 0xfb], al
cmp rsi, 4
je 0x6967ec
movzx eax, byte [r13 + rdi + 4]
xor byte [rbx + 0xfc], al
cmp rsi, 5
je 0x6967ec
movzx eax, byte [r13 + rdi + 5]
xor byte [rbx + 0xfd], al
cmp rsi, 6
je 0x6967ec
movzx eax, byte [r13 + rdi + 6]
xor byte [rbx + 0xfe], al
cmp rsi, 7
je 0x6967ec
movzx eax, byte [r13 + rdi + 7]
xor byte [rbx + 0xff], al
cmp rsi, 8
je 0x6967ec
movzx eax, byte [r13 + rdi + 8]
xor byte [rbx + 0x100], al
cmp rsi, 9
je 0x6967ec
movzx eax, byte [r13 + rdi + 9]
xor byte [rbx + 0x101], al
cmp rsi, 0xa
je 0x6967ec
movzx eax, byte [r13 + rdi + 0xa]
xor byte [rbx + 0x102], al
cmp rsi, 0xb
je 0x6967ec
movzx eax, byte [r13 + rdi + 0xb]
xor byte [rbx + 0x103], al
cmp rsi, 0xc
je 0x6967ec
movzx eax, byte [r13 + rdi + 0xc]
xor byte [rbx + 0x104], al
cmp rsi, 0xd
je 0x6967ec
movzx eax, byte [r13 + rdi + 0xd]
xor byte [rbx + 0x105], al
cmp rsi, 0xe
je 0x6967ec
movzx eax, byte [r13 + rdi + 0xe]
xor byte [rbx + 0x106], al
cmp rsi, 0xf
jbe 0x6967ec
movzx eax, byte [r13 + rdi + 0xf]
xor byte [rbx + 0x107], al
jmp 0x6967ec
movzx edx, byte [rcx]
xor byte [rbx + 0xf8], dl
cmp rax, 1
je 0x696a84
movzx edx, byte [r12 + rdi + 1]
xor byte [rbx + 0xf9], dl
cmp rax, 2
je 0x696a84
movzx edx, byte [r12 + rdi + 2]
xor byte [rbx + 0xfa], dl
cmp rax, 3
je 0x696a84
movzx edx, byte [r12 + rdi + 3]
xor byte [rbx + 0xfb], dl
cmp rax, 4
je 0x696a84
movzx edx, byte [r12 + rdi + 4]
xor byte [rbx + 0xfc], dl
cmp rax, 5
je 0x696a84
movzx edx, byte [r12 + rdi + 5]
xor byte [rbx + 0xfd], dl
cmp rax, 6
je 0x696a84
movzx edx, byte [r12 + rdi + 6]
xor byte [rbx + 0xfe], dl
cmp rax, 7
je 0x696a84
movzx edx, byte [r12 + rdi + 7]
xor byte [rbx + 0xff], dl
cmp rax, 8
je 0x696a84
movzx edx, byte [r12 + rdi + 8]
xor byte [rbx + 0x100], dl
cmp rax, 9
je 0x696a84
movzx edx, byte [r12 + rdi + 9]
xor byte [rbx + 0x101], dl
cmp rax, 0xa
je 0x696a84
movzx edx, byte [r12 + rdi + 0xa]
xor byte [rbx + 0x102], dl
cmp rax, 0xb
je 0x696a84
movzx edx, byte [r12 + rdi + 0xb]
xor byte [rbx + 0x103], dl
cmp rax, 0xc
je 0x696a84
movzx edx, byte [r12 + rdi + 0xc]
xor byte [rbx + 0x104], dl
cmp rax, 0xd
je 0x696a84
movzx edx, byte [r12 + rdi + 0xd]
xor byte [rbx + 0x105], dl
cmp rax, 0xe
je 0x696a84
movzx edx, byte [r12 + rdi + 0xe]
xor byte [rbx + 0x106], dl
cmp rax, 0xf
jbe 0x696a84
movzx eax, byte [r12 + rdi + 0xf]
xor byte [rbx + 0x107], al
jmp 0x696a84
mov rdx, rbp
add rax, rbp
movzx r10d, byte [rdx + 0x48]
xor byte [rdx], r10b
add rdx, 1
cmp rdx, rax
jne 0x69751e
jmp 0x697046
mov r8d, 0x10
xor edx, edx
mov edi, 0x20
sub r8, rax
lea rcx, [rbx + rax + 0x108]
call sym.memset
mov rax, qword [rbx + 0x108]
mov rdx, qword [rbx + 0x110]
cmp qword [rbx + 0xd0], 0x10
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rdx
je 0x69759e
mov qword [rsp + 0xc0], rax
mov edi, 0x30
mov qword [rsp + 0xc8], rdx
movdqu xmm0, xmmword [rbx + 0x120]
mov dword [rsp + 0x3c], 0x10
pxor xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbx + 0x120], xmm0
movdqu xmm0, xmmword [rbx + 0x130]
pxor xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbx + 0x130], xmm0
cmp edi, 0x30
jne 0x6975f3
movdqu xmm0, xmmword [rbx + 0x140]
pxor xmm0, xmmword [rsp + 0xc0]
movups xmmword [rbx + 0x140], xmm0
mov dword [rsp + 0x20], edi
mov r9, r14
mov r8, r15
mov rdx, r14
mov rcx, qword [rbx + 0xb8]
call sym.EVP_CipherUpdate
test eax, eax
je 0x69652a
cmp dword [rsp + 0x3c], edi
je 0x696d0b
jmp 0x69652a