Function at 0x140055870
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov qword [rbp - 8], r8
mov rbx, rdx
mov rsi, rcx
mov eax, dword [0x141dc7e68]
or eax, dword [0x141dc7e6c]
or eax, 0x7c80188f
cmp eax, 0xa8d66803
jne 0x1400558c0
mov eax, 0x40
call fcn.1400ef330
sub rsp, rax
nop word cs:[rax + rax]
mov ecx, dword [0x141dc7e70]
imul ecx, dword [0x141dc7e74]
and ecx, 0x7d7b56f
add ecx, 0xcc03e680
or ecx, 0xf429e60f
mov eax, 0x40
call fcn.1400ef330
sub rsp, rax
mov r15, rsp
cmp ecx, 0x89895e38
jb 0x1400558c0
mov eax, 0x10
call fcn.1400ef330
sub rsp, rax
mov r12, rsp
mov eax, 0x20
call fcn.1400ef330
sub rsp, rax
mov r13, rsp
cmp byte [rsi + 0x10], 0
mov rdi, qword [rsi]
mov al, 1
jne 0x140055cc3
mov r14, qword [rsi + 8]
mov edx, dword [r14 + 0x34]
test dl, 4
jne 0x140055ae7
mov qword [rbp], rbx
lea rax, [0x141db5d63]
lea rcx, [0x141db5d57]
nop dword [rax]
mov edx, dword [0x141dc7e78]
add edx, dword [0x141dc7e7c]
imul r8d, edx, 0x105e13c0
or r8d, 0x52de8c33
add r8d, 0x93f10a6d
xor r15d, r15d
test rdi, rdi
mov r12, rcx
cmove r12, rax
setne dl
cmp r8d, 0x2ca65b28
jb 0x140055950
mov r15b, dl
inc r15
mov eax, 0xd1028c17
nop word cs:[rax + rax]
mov ecx, dword [0x141dc7e80]
xor ecx, dword [0x141dc7e84]
imul ecx, ecx, 0xb0ecc50a
xor ecx, 0xd7f59e57
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0xc16cd8d6
je 0x1400559a0
mov r13, qword [r14 + 0x20]
mov eax, dword [0x141dc7e88]
or eax, dword [0x141dc7e8c]
mov rbx, qword [r14 + 0x28]
imul eax, eax, 0x26290e40
add eax, 0xb13a8880
cmp eax, 0xad446f1
jae 0x140055a10
sub rsp, 0x20
mov rcx, r13
mov rdx, r12
mov r8, r15
call qword [rbx + 0x18]
add rsp, 0x20
nop word cs:[rax + rax]
sub rsp, 0x20
mov rcx, r13
mov rdx, r12
mov r8, r15
call qword [rbx + 0x18]
add rsp, 0x20
mov ecx, eax
xor eax, eax
test al, al
jne 0x140055a10
mov al, 1
test cl, cl
mov r12, qword [rbp]
jne 0x140055c94
mov eax, dword [0x141dc7e90]
xor eax, dword [0x141dc7e94]
and eax, 0xdf170501
imul eax, eax, 0xf1469c00
add eax, 0xc9f59000
cmp eax, 0xccd7e9f3
mov r15, qword [rbp - 8]
jae 0x140055a80
sub rsp, 0x20
mov rcx, r12
mov rdx, r14
call r15
add rsp, 0x20
nop word cs:[rax + rax]
mov ebx, dword [0x141dc7e98]
and ebx, dword [0x141dc7e9c]
xor ebx, 0x20d904
or ebx, 0xb45f26f3
xor ebx, 0x77870b19
sub rsp, 0x20
mov rcx, r12
mov rdx, r14
call r15
add rsp, 0x20
cmp ebx, 0xd091f3f6
ja 0x140055a80
mov ecx, 0xcc66bfa7
nop dword [rax]
mov edx, dword [0x141dc7ea0]
and edx, dword [0x141dc7ea4]
xor edx, 0x80fde24e
imul rdx, rcx
shr rdx, 0x3e
cmp edx, 0x513aa0f0
ja 0x140055ac0
jmp 0x140055c94
test rdi, rdi
jne 0x140055b3d
mov rcx, qword [r14 + 0x20]
mov rax, qword [r14 + 0x28]
sub rsp, 0x20
lea rdx, [0x141db5d64]
mov r8d, 2
call qword [rax + 0x18]
add rsp, 0x20
mov ecx, eax
mov al, 1
test cl, cl
jne 0x140055c94
mov edx, dword [r14 + 0x34]
nop dword [rax]
mov eax, dword [0x141dc7ea8]
xor eax, dword [0x141dc7eac]
or eax, 0x823d0b62
add eax, 0xd532edb3
cmp eax, 0xbbce5018
jb 0x140055b20
mov qword [rbp - 0x10], rdi
mov eax, dword [0x141dc7eb0]
and eax, dword [0x141dc7eb4]
xor eax, 0x2b15cc42
imul eax, eax, 0x9e604dea
cmp eax, 0x1bdf8b2c
jae 0x140055bc5
mov byte [r12], 1
movups xmm0, xmmword [r14 + 0x20]
movaps xmmword [r13], xmm0
mov qword [r13 + 0x10], r12
mov eax, dword [r14 + 0x30]
movzx ecx, byte [r14 + 0x38]
mov dword [r15 + 0x34], edx
mov dword [r15 + 0x30], eax
mov byte [r15 + 0x38], cl
movups xmm0, xmmword [r14]
movaps xmmword [r15], xmm0
movups xmm0, xmmword [r14 + 0x10]
movaps xmmword [r15 + 0x10], xmm0
mov qword [r15 + 0x20], r13
lea rax, [0x141db5d20]
mov qword [r15 + 0x28], rax
sub rsp, 0x20
mov rcx, rbx
mov rdi, r13
mov r13d, edx
mov rdx, r15
call qword [rbp - 8]
mov edx, r13d
mov r13, rdi
add rsp, 0x20
mov qword [rbp], rbx
nop dword [rax]
mov ebx, dword [0x141dc7eb8]
xor ebx, dword [0x141dc7ebc]
add ebx, 0x24b5994e
or ebx, 0x8f111d9
mov byte [r12], 1
movups xmm0, xmmword [r14 + 0x20]
movaps xmmword [r13], xmm0
mov qword [r13 + 0x10], r12
mov eax, dword [r14 + 0x30]
movzx ecx, byte [r14 + 0x38]
mov dword [r15 + 0x34], edx
mov dword [r15 + 0x30], eax
mov byte [r15 + 0x38], cl
movups xmm0, xmmword [r14]
movaps xmmword [r15], xmm0
movups xmm0, xmmword [r14 + 0x10]
movaps xmmword [r15 + 0x10], xmm0
mov qword [r15 + 0x20], r13
lea rax, [0x141db5d20]
mov qword [r15 + 0x28], rax
sub rsp, 0x20
mov rcx, qword [rbp]
mov rdi, r13
mov r13d, edx
mov rdx, r15
call qword [rbp - 8]
mov edx, r13d
mov r13, rdi
add rsp, 0x20
cmp ebx, 0x458afbbb
je 0x140055bd0
test al, al
je 0x140055c67
mov al, 1
mov rdi, qword [rbp - 0x10]
jmp 0x140055c94
xor eax, eax
mov rdi, qword [rbp - 0x10]
nop dword [rax]
test al, al
jne 0x140055c70
mov rcx, qword [r15 + 0x20]
mov rax, qword [r15 + 0x28]
sub rsp, 0x20
lea rdx, [0x141db5d5e]
mov r8d, 2
call qword [rax + 0x18]
add rsp, 0x20
mov ecx, 0xaaaf2d33
nop dword [rax]
mov edx, dword [0x141dc7ec0]
imul edx, dword [0x141dc7ec4]
add edx, 0x124ea341
imul rdx, rcx
shr rdx, 0x3f
cmp edx, 0xee301761
ja 0x140055ca0
mov ecx, dword [0x141dc7ec8]
imul ecx, dword [0x141dc7ecc]
or ecx, 0x4081d10
and ecx, 0x244dbf1d
add ecx, 0x1538d6d
cmp ecx, 0x8f9b8e63
jbe 0x140055cf4
mov byte [rsi + 0x10], al
lea rcx, [rdi + 1]
mov qword [rsi], rcx
inc rdi
nop word [rax + rax]
mov ecx, dword [0x141dc7ed0]
sub ecx, dword [0x141dc7ed4]
add ecx, 0xf310d4e5
xor ecx, 0xa14d57bd
add ecx, 0xa28c40f8
mov byte [rsi + 0x10], al
mov qword [rsi], rdi
cmp ecx, 0x2eb568aa
jb 0x140055d00
mov rax, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret