Function at 0x140285de0
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x58
mov qword [rsp + 0x40], 0
mov rbx, rcx
mov r12, r9
mov rcx, rdx
test rbx, rbx
je 0x140285f40
test rdx, rdx
je 0x140285f40
cmp byte [r8], 0x68
jne 0x140285e22
cmp byte [r8 + 1], 0x65
je 0x140285fb0
xor edi, edi
mov rdx, r8
call fcn.1400f9ee0
cmp qword [rsp + 0xb8], 0
mov rsi, rax
je 0x140285e4c
xor eax, eax
mov rdx, qword [rsp + 0xb8]
test rsi, rsi
setne al
mov dword [rdx], eax
test rsi, rsi
je 0x1402861c8
mov eax, dword [rsi + 8]
cmp eax, 4
je 0x1402860a0
ja 0x140285f50
sub eax, 1
cmp eax, 1
ja 0x140286030
lea rcx, [rsp + 0x40]
mov rdx, r12
test edi, edi
jne 0x140286020
call fcn.1400ab7e0
mov rcx, qword [rsp + 0x40]
test eax, eax
je 0x140285f24
test rcx, rcx
je 0x140285f24
mov eax, dword [rsi + 8]
cmp eax, 2
je 0x140286210
cmp eax, 1
je 0x1402861d8
call fcn.1400abf50
cmp dword [rsi + 8], 1
movsxd rdx, eax
jne 0x140285ecb
lea rcx, [rdx + 8]
test al, 7
cmove rdx, rcx
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x140286380
mov rcx, rax
shl rax, 3
cmp rdx, rax
jbe 0x1402860ea
call fcn.1400bf100
lea r8, str.prepare_from_text
mov edx, 0x65
lea rcx, str.crypto_params_from_text.c
call fcn.1400bf220
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x74
call fcn.1400bf330
mov rcx, qword [rsp + 0x40]
call fcn.1400ac3f0
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
cmp eax, 5
jne 0x140286030
test edi, edi
jne 0x140285fd0
cmp qword [rsp + 0xb0], 0
mov ecx, 1
cmovne rcx, qword [rsp + 0xb0]
mov r8d, 0xd5
lea rdx, str.crypto_params_from_text.c
call fcn.140095c70
mov r13, rax
test rax, rax
je 0x1402861c8
cmp qword [rsp + 0xb0], 0
mov r14, qword [rsp + 0x40]
jne 0x14028610d
jmp 0x140286064
cmp byte [r8 + 2], 0x78
jne 0x140285e22
add r8, 3
mov edi, 1
jmp 0x140285e24
cmp byte [r12], 0
je 0x140286368
mov rdx, r12
xor eax, eax
jmp 0x140285ff3
cmp eax, 0x80000000
je 0x140286368
add rdx, 1
add eax, 1
cmp byte [rdx], 0
jne 0x140285fe8
shr eax, 1
mov ecx, 1
and eax, 0x3fffffff
mov qword [rsp + 0xb0], rax
cmovne rcx, rax
jmp 0x140285f74
call fcn.1400ab3b0
jmp 0x140285e88
mov r8d, 0xd5
lea rdx, str.crypto_params_from_text.c
mov ecx, 1
call fcn.140095c70
mov r13, rax
test rax, rax
je 0x1402861c8
mov qword [rsp + 0xb0], 0
mov r14, qword [rsp + 0x40]
mov rax, qword [rsp + 0xb0]
movdqu xmm2, xmmword [rsi]
mov qword [rbx + 0x10], r13
mov rcx, r14
mov qword [rbx + 0x20], 0xffffffffffffffff
mov qword [rbx + 0x18], rax
movups xmmword [rbx], xmm2
call fcn.1400ac3f0
mov eax, 1
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
test edi, edi
jne 0x1402863c8
xor eax, eax
cmp byte [r12], 0
mov rdx, r12
jne 0x1402860cb
jmp 0x140286408
cmp eax, 0x80000000
je 0x140286408
add rdx, 1
add eax, 1
cmp byte [rdx], 0
jne 0x1402860c0
and eax, 0x7fffffff
add eax, 1
mov qword [rsp + 0xb0], rax
mov rcx, rax
mov r8d, 0xd5
lea rdx, str.crypto_params_from_text.c
call fcn.140095c70
mov r13, rax
test rax, rax
je 0x1402861c8
mov r14, qword [rsp + 0x40]
mov eax, dword [rsi + 8]
cmp eax, 4
je 0x1402863a0
ja 0x140286150
sub eax, 1
cmp eax, 1
ja 0x140286064
mov r8d, dword [rsp + 0xb0]
mov rdx, r13
mov rcx, r14
call fcn.1400accc0
cmp dword [rsi + 8], 1
je 0x14028622a
mov r14, qword [rsp + 0x40]
jmp 0x140286064
cmp eax, 5
jne 0x140286064
test edi, edi
je 0x1402861f0
mov dword [rsp + 0x20], 0x3a
mov r9, r12
lea r8, [rsp + 0x48]
mov rcx, r13
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x48], 0
call fcn.140097a40
mov r14, qword [rsp + 0x40]
test eax, eax
jne 0x140286064
mov rcx, r14
mov dword [rsp + 0x3c], eax
call fcn.1400ac3f0
mov r8d, 0xdc
lea rdx, str.crypto_params_from_text.c
mov rcx, r13
call fcn.140095b40
mov eax, dword [rsp + 0x3c]
jmp 0x140285f42
mov rcx, qword [rsp + 0x40]
jmp 0x140285f24
call fcn.1400ad480
test eax, eax
jne 0x14028641e
mov rcx, qword [rsp + 0x40]
jmp 0x140285eb3
mov r8, qword [rsp + 0xb0]
mov rdx, r12
mov rcx, r13
call sub.msvcrt.dll_memcpy
jmp 0x140286064
call fcn.1400ad480
test eax, eax
jne 0x14028643f
mov eax, dword [rsi + 8]
mov rcx, qword [rsp + 0x40]
jmp 0x140285eaa
mov rcx, r14
call fcn.1400ad480
test eax, eax
je 0x140286144
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x40]
lea rdx, [rax - 1]
cmp rdx, 0xe
jbe 0x140286478
mov rcx, rax
pcmpeqd xmm1, xmm1
mov rax, r13
and rcx, 0xfffffffffffffff0
add rcx, r13
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
pxor xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rax, rcx
jne 0x140286270
mov rcx, qword [rsp + 0xb0]
and rcx, 0xfffffffffffffff0
lea rax, [r13 + rcx]
sub rdx, rcx
cmp rcx, qword [rsp + 0xb0]
je 0x140286064
not byte [rax]
test rdx, rdx
je 0x140286064
not byte [rax + 1]
cmp rdx, 1
je 0x140286064
not byte [rax + 2]
cmp rdx, 2
je 0x140286064
not byte [rax + 3]
cmp rdx, 3
je 0x140286064
not byte [rax + 4]
cmp rdx, 4
je 0x140286064
not byte [rax + 5]
cmp rdx, 5
je 0x140286064
not byte [rax + 6]
cmp rdx, 6
je 0x140286064
not byte [rax + 7]
cmp rdx, 7
je 0x140286064
not byte [rax + 8]
cmp rdx, 8
je 0x140286064
not byte [rax + 9]
cmp rdx, 9
je 0x140286064
not byte [rax + 0xa]
cmp rdx, 0xa
je 0x140286064
not byte [rax + 0xb]
cmp rdx, 0xb
je 0x140286064
not byte [rax + 0xc]
cmp rdx, 0xc
je 0x140286064
not byte [rax + 0xd]
cmp rdx, 0xd
je 0x140286064
not byte [rax + 0xe]
jmp 0x140286064
mov qword [rsp + 0xb0], 0
mov ecx, 1
jmp 0x140285f74
add rdx, 7
mov ecx, 1
shr rdx, 3
mov qword [rsp + 0xb0], rdx
cmovne rcx, rdx
jmp 0x140285f74
mov r8, qword [rsp + 0xb0]
mov rdx, r12
mov rcx, r13
call sub.msvcrt.dll_strncpy
sub qword [rsp + 0xb0], 1
jmp 0x140286144
call fcn.1400bf100
lea r8, str.prepare_from_text
mov edx, 0x6f
lea rcx, str.crypto_params_from_text.c
call fcn.1400bf220
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x80106
call fcn.1400bf330
mov rcx, qword [rsp + 0x40]
jmp 0x140285f24
mov qword [rsp + 0xb0], 1
mov ecx, 1
jmp 0x1402860ea
mov rcx, qword [rsp + 0x40]
mov edx, 1
call fcn.1400b0d40
mov rcx, qword [rsp + 0x40]
test eax, eax
jne 0x140285eb3
jmp 0x140285f24
call fcn.1400bf100
lea r8, str.prepare_from_text
mov edx, 0x3b
lea rcx, str.crypto_params_from_text.c
call fcn.1400bf220
mov ecx, 0xf
xor r8d, r8d
mov edx, 0x7a
call fcn.1400bf330
mov rcx, qword [rsp + 0x40]
jmp 0x140285f24
mov rax, r13
jmp 0x1402862a7