Function at 0x140202300
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
mov eax, 0x178
call fcn.1403e54f0
sub rsp, rax
mov rax, qword [0x140713740]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov eax, dword [rbp + 0xe8]
xor edi, edi
mov r14, qword [rbp + 0xe0]
mov r15, r8
mov r12, qword [rbp + 0xf0]
mov rsi, rdx
mov qword [rsp + 0x50], r9
mov rbx, rcx
mov qword [rsp + 0x48], r14
mov r13d, edi
cmp eax, 0xffffffff
jne 0x140202367
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x40], eax
jmp 0x140202378
test eax, eax
mov ecx, 1
cmove ecx, eax
mov dword [rsp + 0x40], ecx
mov dword [rbx + 0x10], ecx
test rsi, rsi
jne 0x1402023a7
cmp qword [rbx], rdi
jne 0x1402023a7
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
lea edx, [rsi + 0x75]
lea rcx, str.cryptoevpevp_enc.c
call fcn.14020ace0
mov edx, 0x83
jmp 0x14020265f
cmp qword [rbx + 8], rdi
je 0x1402023c9
mov rax, qword [rbx]
test rax, rax
je 0x1402023c9
test rsi, rsi
je 0x140202c92
mov eax, dword [rax]
cmp dword [rdx], eax
jne 0x1402023ce
jmp 0x140202c92
test rsi, rsi
je 0x1402023dd
test r15, r15
jne 0x1402023dd
mov ecx, dword [rdx]
call fcn.14021c660
mov r13, rax
cmp qword [rbx + 8], rdi
jne 0x140202a3a
test r13, r13
jne 0x140202a3a
test r15, r15
jne 0x140202a3a
test rsi, rsi
je 0x14020255c
cmp dword [rsi + 0x14], 2
je 0x140202a3a
mov rax, qword [rbx]
test rax, rax
je 0x14020244f
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x14020242a
mov rcx, rbx
call rdx
test eax, eax
je case.default.0x140202d51
mov rax, qword [rbx]
lea r14, [rbx + 0x78]
mov rcx, qword [r14]
lea r8, str.cryptoevpevp_enc.c
mov r9d, 0xa4
movsxd rdx, dword [rax + 0x30]
call fcn.14020a730
mov qword [r14], rdi
jmp 0x140202453
lea r14, [rbx + 0x78]
mov rax, qword [rbx]
test rax, rax
je 0x140202571
mov r15d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x1402024ee
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x14020248e
mov rdx, qword [rax + 0xb0]
test rdx, rdx
je 0x140202487
call rdx
mov qword [rbx + 0xa8], rdi
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x140202536
cmp dword [r14 + 0x14], edi
jne 0x140202536
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x140202536
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c6
call fcn.14020a670
mov rcx, qword [r14 + 0x70]
call fcn.140217ab0
mov r8d, 0x6c9
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.14020a670
jmp 0x140202536
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x140202500
mov rcx, rbx
call rdx
test eax, eax
je 0x14020254d
mov rcx, qword [r14]
test rcx, rcx
je 0x140202518
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x140202518
call fcn.140001240
mov rcx, qword [r14]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.14020a670
mov rcx, qword [rbx + 8]
call fcn.14021bfe0
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.14041cf40
mov dword [rbx + 0x6c], 0xffffffff
mov r13d, dword [rsp + 0x40]
mov dword [rbx + 0x10], r13d
mov dword [rbx + 0x70], r15d
jmp 0x140202576
mov rax, qword [rbx]
test rax, rax
je 0x14020256e
cmp dword [rax + 0x14], 2
je 0x140202a3a
mov rsi, qword [rbx]
mov r13d, dword [rsp + 0x40]
cmp qword [rsi + 0x70], rdi
jne 0x14020268d
mov ecx, dword [rsi]
test ecx, ecx
jne 0x14020258f
lea rax, str.NULL
jmp 0x140202594
call fcn.140213550
lea rcx, [0x140201db0]
mov r8, rax
mov qword [rsp + 0x30], rcx
lea r9, [0x1405399ed]
lea rcx, [fcn.140200b70]
mov edx, 2
mov qword [rsp + 0x28], rcx
lea rcx, [0x140201e70]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call fcn.140219760
mov rsi, rax
test rax, rax
je case.default.0x140202d51
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x140202630
cmp dword [r14 + 0x14], edi
jne 0x140202630
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x140202630
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c6
call fcn.14020a670
mov rcx, qword [r14 + 0x70]
call fcn.140217ab0
mov r8d, 0x6c9
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.14020a670
mov qword [rbx + 0xb0], rsi
cmp qword [rsi + 0x70], rdi
jne 0x14020268d
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0xcc
lea rcx, str.cryptoevpevp_enc.c
call fcn.14020ace0
mov edx, 0x86
xor r8d, r8d
lea ecx, [r8 + 6]
call fcn.14020ae40
xor eax, eax
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1403e5550
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp rsi, qword [rbx + 0xb0]
je 0x1402026fc
cmp dword [rsi + 0x14], edi
jne 0x14020269f
lock inc dword [rsi + 0x78]
mov r14, qword [rbx + 0xb0]
test r14, r14
je 0x1402026f5
cmp dword [r14 + 0x14], edi
jne 0x1402026f5
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x1402026f5
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c6
call fcn.14020a670
mov rcx, qword [r14 + 0x70]
call fcn.140217ab0
mov r8d, 0x6c9
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.14020a670
mov qword [rbx + 0xb0], rsi
mov qword [rbx], rsi
cmp qword [rbx + 0xa8], rdi
jne 0x14020273c
mov rcx, qword [rsi + 0x70]
call fcn.140217520
mov rcx, rax
call qword [rsi + 0x80]
mov qword [rbx + 0xa8], rax
test rax, rax
jne 0x14020273c
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0xde
jmp 0x14020264e
mov eax, dword [rbx + 0x70]
bt eax, 8
jae 0x1402027d8
bts eax, 8
mov qword [rsp + 0x60], rdi
mov dword [rbx + 0x70], eax
mov rax, qword [rbx]
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rdi
mov dword [rbp - 0x70], edi
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], rdi
mov dword [rsp + 0x40], edi
test rax, rax
je 0x14020278c
cmp qword [rax + 0x70], rdi
je 0x1402027d8
lea r8, [rsp + 0x40]
lea rdx, [0x14043c218]
lea rcx, [rbp - 0x50]
call fcn.140210470
mov rdx, qword [rbx + 0xa8]
lea r8, [rsp + 0x60]
mov rcx, qword [rbx]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp - 0x80], xmm0
call fcn.1402192f0
test eax, eax
je case.default.0x140202d51
test r12, r12
je 0x140202944
lea rdx, str.keylen
mov qword [rbp - 0x20], rdi
mov rcx, r12
mov dword [rbp - 0x18], edi
mov qword [rbp - 0x10], rdi
mov qword [rbp - 8], rdi
mov qword [rbp], rdi
mov qword [rbp + 8], rdi
mov dword [rbp + 0x10], edi
mov qword [rbp + 0x18], rdi
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], rdi
mov qword [rbp + 0x30], rdi
mov dword [rbp + 0x38], edi
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rdi
mov qword [rbp + 0x50], rdi
call fcn.140211630
test rax, rax
je 0x140202847
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x10], xmm1
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp], xmm0
test rax, rax
lea rcx, [rbp + 8]
lea rsi, [rbp - 0x20]
cmovne rsi, rcx
lea rdx, str.ivlen
mov rcx, r12
call fcn.140211630
mov rcx, rax
test rax, rax
je 0x14020288c
movups xmm0, xmmword [rcx]
mov rax, rsi
add rsi, 0x28
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [rcx + 0x20]
movsd qword [rax + 0x20], xmm0
lea rax, [rbp - 0x20]
cmp rsi, rax
je 0x140202944
mov rax, qword [rbx]
test rax, rax
je 0x14020291d
mov r8, qword [rax + 0xd0]
test r8, r8
je 0x14020291d
mov rcx, qword [rbx + 0xa8]
lea rdx, [rbp - 0x20]
call r8
test eax, eax
jle 0x14020291b
lea rdx, str.keylen
lea rcx, [rbp - 0x20]
call fcn.140211630
test rax, rax
je 0x1402028ed
lea rdx, [rbx + 0x68]
mov rcx, rax
call fcn.140210690
test eax, eax
jne 0x1402028ed
mov dword [rbx + 0x68], 0xffffffff
jmp 0x14020291d
lea rdx, str.ivlen
lea rcx, [rbp - 0x20]
call fcn.140211630
test rax, rax
je 0x140202944
lea rdx, [rbx + 0x6c]
mov rcx, rax
call fcn.140210690
test eax, eax
jne 0x140202944
mov dword [rbx + 0x6c], 0xffffffff
jmp 0x14020291d
jne 0x140202944
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x109
lea rcx, str.cryptoevpevp_enc.c
call fcn.14020ace0
mov edx, 0xdd
jmp 0x14020265f
mov rax, qword [rbx]
test r13d, r13d
je 0x1402029c3
cmp qword [rax + 0x88], rdi
jne 0x14020296b
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x112
jmp 0x14020264e
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x140202979
mov esi, edi
jmp 0x140202983
mov rcx, rbx
call fcn.1401fbcb0
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x140202997
mov rcx, rbx
call fcn.1401fbe10
mov edi, eax
mov r10, qword [rbx]
mov r9, r15
movsxd rcx, esi
mov rdx, r14
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbx + 0xa8]
movsxd r8, edi
call qword [r10 + 0x88]
jmp 0x14020266d
cmp qword [rax + 0x90], rdi
jne 0x1402029e2
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x121
jmp 0x14020264e
mov r15, qword [rsp + 0x48]
test r15, r15
jne 0x1402029f0
mov esi, edi
jmp 0x1402029fa
mov rcx, rbx
call fcn.1401fbcb0
mov esi, eax
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x140202a0e
mov rcx, rbx
call fcn.1401fbe10
mov edi, eax
mov r10, qword [rbx]
mov r9, r15
mov rcx, qword [rbx + 0xa8]
mov rdx, r14
movsxd rax, esi
movsxd r8, edi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call qword [r10 + 0x90]
jmp 0x14020266d
mov r14, qword [rbx + 0xb0]
cmp qword [rbx], r14
jne 0x140202a49
mov qword [rbx], rdi
test r14, r14
je 0x140202a98
cmp dword [r14 + 0x14], edi
jne 0x140202a98
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x140202a98
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c6
call fcn.14020a670
mov rcx, qword [r14 + 0x70]
call fcn.140217ab0
mov r8d, 0x6c9
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.14020a670
mov qword [rbx + 0xb0], rdi
test rsi, rsi
je 0x140202c8d
mov rax, qword [rbx]
test rax, rax
je 0x140202bba
mov r12d, dword [rbx + 0x70]
cmp qword [rax + 0x70], rdi
je 0x140202b4e
mov rcx, qword [rbx + 0xa8]
test rcx, rcx
je 0x140202b98
mov rdx, qword [rax + 0xb0]
mov r14, rdi
test rdx, rdx
je 0x140202aea
call rdx
mov r14, qword [rbx + 0xb0]
mov qword [rbx + 0xa8], rdi
test r14, r14
je 0x140202b98
cmp dword [r14 + 0x14], edi
jne 0x140202b98
mov eax, 0xffffffff
lock xadd dword [r14 + 0x78], eax
sub eax, 1
jg 0x140202b98
mov rcx, qword [r14 + 0x60]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x6c6
call fcn.14020a670
mov rcx, qword [r14 + 0x70]
call fcn.140217ab0
mov r8d, 0x6c9
lea rdx, str.cryptoevpevp_enc.c
mov rcx, r14
call fcn.14020a670
jmp 0x140202b98
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x140202b60
mov rcx, rbx
call rdx
test eax, eax
je 0x140202baf
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x140202b79
mov rax, qword [rbx]
movsxd rdx, dword [rax + 0x30]
test edx, edx
je 0x140202b79
call fcn.140001240
mov rcx, qword [rbx + 0x78]
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x3f
call fcn.14020a670
mov rcx, qword [rbx + 8]
call fcn.14021bfe0
mov r8d, 0xb8
xor edx, edx
mov rcx, rbx
call fcn.14041cf40
mov dword [rbx + 0x6c], 0xffffffff
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x10], eax
mov dword [rbx + 0x70], r12d
test r15, r15
je 0x140202be1
mov rcx, r15
call fcn.14021c100
test eax, eax
jne 0x140202be9
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x141
jmp 0x14020264e
mov r15, r13
test r13, r13
je 0x140202c11
mov edx, dword [rsi]
mov rcx, r15
call fcn.14021c5f0
mov rsi, rax
test rax, rax
jne 0x140202c14
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x151
jmp 0x14020264e
mov r15, rdi
mov qword [rbx + 8], r15
mov qword [rbx], rsi
movsxd rax, dword [rsi + 0x30]
test eax, eax
je 0x140202c49
mov rcx, rax
lea rdx, str.cryptoevpevp_enc.c
mov r8d, 0x162
call fcn.14020a900
mov qword [rbx + 0x78], rax
test rax, rax
jne 0x140202c4d
mov qword [rbx], rdi
jmp case.default.0x140202d51
mov qword [rbx + 0x78], rdi
mov eax, dword [rsi + 8]
and dword [rbx + 0x70], 1
mov dword [rbx + 0x68], eax
mov rax, qword [rbx]
test byte [rax + 0x10], 0x40
je 0x140202c8d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1401ffc70
test eax, eax
jg 0x140202c8d
mov qword [rbx], rdi
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x170
jmp 0x14020264e
mov r14, qword [rsp + 0x48]
mov rax, qword [rbx]
test rax, rax
je case.default.0x140202d51
mov ecx, dword [rax + 4]
cmp ecx, 0x10
ja 0x140202cb0
mov eax, 0x10102
bt eax, ecx
jb 0x140202cc9
mov r8d, 0x17e
lea rdx, str.cryptoevpevp_enc.c
lea rcx, str.assertion_failed:_ctx__cipher__block_size__1__ctx__cipher__block_size__8__ctx__cipher__block_size__16
call fcn.14020e8c0
test byte [rbx + 0x70], 1
jne 0x140202d0d
mov rcx, rbx
call fcn.1401fbc80
mov rcx, rax
call fcn.1401fc2e0
cmp eax, 0x10002
jne 0x140202d0d
call fcn.14020abc0
lea r8, str.evp_cipher_init_internal
mov edx, 0x182
lea rcx, str.cryptoevpevp_enc.c
call fcn.14020ace0
mov edx, 0xaa
jmp 0x14020265f
mov rcx, rbx
call fcn.1401fbc80
mov rcx, rax
call fcn.1401fc2b0
test al, 0x10
jne case.0x140202d51.0
mov rcx, rbx
call fcn.1401fbc80
mov rcx, rax
call fcn.1401fc2e0
cmp eax, 5
ja case.default.0x140202d51
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x202e48]
add rcx, rdx
jmp rcx
mov dword [rbx + 0x58], edi
mov rcx, rbx
call fcn.1401fbcb0
cmp eax, 0x10
ja 0x140202d93
mov r15, qword [rsp + 0x48]
lea rsi, [rbx + 0x18]
movsxd r14, eax
test r15, r15
je 0x140202d82
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.14041c8a0
lea rcx, [rbx + 0x28]
mov r8, r14
mov rdx, rsi
call fcn.14041c8a0
jmp 0x140202de6
call fcn.14020abc0
mov edx, 0x197
lea r8, str.evp_cipher_init_internal
lea rcx, str.cryptoevpevp_enc.c
call fcn.14020ace0
mov edx, 0xc2
jmp 0x14020265f
mov dword [rbx + 0x58], edi
test r14, r14
je case.0x140202d51.0
mov rcx, rbx
call fcn.1401fbcb0
lea ecx, [rax - 1]
cmp ecx, 0xf
ja 0x140202e37
movsxd r8, eax
lea rcx, [rbx + 0x28]
mov rdx, r14
call fcn.14041c8a0
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x140202df9
mov rax, qword [rbx]
test byte [rax + 0x10], 0x20
je 0x140202e16
mov r10, qword [rbx]
mov r8, r15
mov r9d, dword [rsp + 0x40]
mov rdx, r14
mov rcx, rbx
call qword [r10 + 0x18]
test eax, eax
je case.default.0x140202d51
mov rcx, qword [rbx]
mov eax, 1
mov dword [rbx + 0x14], edi
mov dword [rbx + 0x80], edi
mov edx, dword [rcx + 4]
dec edx
mov dword [rbx + 0x84], edx
jmp 0x14020266d
call fcn.14020abc0
mov edx, 0x1a5
jmp 0x140202d9d