Function at 0x140281510
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
test rdx, rdx
je 0x140281587
mov rdi, r8
mov r9, rdx
mov qword [rbp - 0x10], 0
movsxd r15, dword [0x1404782c0]
mov r12d, dword [0x1404782c8]
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
movabs rax, 0xb30d86c2e49c206c
add rax, qword [0x14056a158]
cmp r8, rax
jbe 0x14028159b
lea rcx, [rbp - 0x20]
mov rdx, rdi
call fcn.14008abc0
jmp 0x1402815b3
cmp qword [rsi + 0x20], 0x10
jb 0x140281641
mov rax, qword [rsi + 8]
jmp 0x140281645
mov qword [rbp - 0x10], rdi
lea rcx, [rbp - 0x20]
mov rdx, r9
mov r8, rdi
call fcn.14044e610
mov byte [rbp + rdi - 0x20], 0
mov rdi, qword [rbp - 0x10]
cmp qword [rbp - 8], 0x10
jb 0x1402815c4
mov r14, qword [rbp - 0x20]
jmp 0x1402815c8
lea r14, [rbp - 0x20]
lea rbx, [rbp - 0x40]
cmp rdi, 0xf
ja 0x1402815e4
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov r13d, 0xf
jmp 0x140281671
mov r13, rdi
or r13, 0xf
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmovae r13, rax
cmp r13, 0xfff
jb 0x140281655
lea rcx, [r13 + 0x28]
call fcn.1404266ec
mov rdx, rax
add rdx, 0x27
movabs rcx, 0xb30d86c2e49c203d
add rcx, qword [0x14056a158]
mov r8, rdx
not r8
xor rdx, rcx
not rcx
and rcx, r8
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140281661
lea rax, [rsi + 8]
mov qword [rsi + 0x18], 0
mov byte [rax], 0
jmp 0x1402817c9
lea rcx, [r13 + 1]
call fcn.1404266ec
mov rcx, rax
mov qword [rbp - 0x40], rcx
lea r8, [rdi + 1]
mov rdx, r14
call fcn.14044e610
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x28], r13
lea rax, [0x14046b098]
mov qword [rbp - 0x48], rax
lea rax, [rbp - 0x48]
cmp rax, rsi
je 0x140281706
movabs rax, 0xb30d86c2e49c205d
add rax, qword [0x14056a158]
lea r14, [rsi + 8]
cmp rdi, rax
jne 0x1402816bc
cmp qword [rsi + 0x20], 0x10
jb 0x1402816b2
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], 0
jmp 0x1402816fe
cmp r13, 0x10
jb 0x1402816c6
mov rbx, qword [rbp - 0x40]
mov rax, qword [rsi + 0x20]
cmp rax, rdi
jae 0x1402816df
mov rcx, r14
mov rdx, rdi
mov r9, rbx
call fcn.14008abc0
jmp 0x140281702
cmp rax, 0x10
jb 0x1402816e9
mov r14, qword [rsi + 8]
mov qword [rsi + 0x18], rdi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14044e610
add r14, rdi
mov byte [r14], 0
mov r13, qword [rbp - 0x28]
cmp r13, 0x10
jb 0x140281789
mov r8, qword [rbp - 0x40]
lea r9, [r13 + 1]
cmp r9, 0x1000
jb 0x14028176d
mov rax, qword [r8 - 8]
sub r8, rax
add r8, 0xfffffffffffffff8
cmp r8, 0x20
jae 0x1402817c4
mov rcx, qword [0x14056a158]
add r13, rcx
movabs rdx, 0xb30d86c2e49c2085
xor rdx, rcx
movabs r8, 0x330d86c2e49c2085
and r8, rcx
lea rcx, [rdx + r8*2]
movabs r9, 0xb30d86c2e49c205d
add r9, r13
add r9, rcx
mov r8, rax
mov dword [rsp + 0x28], 0x75bd0fbe
mov dword [rsp + 0x20], 0xa8261d12
xor ecx, ecx
mov edx, 1
call fcn.140282be0
lea rax, [0x1404782c0]
add r15, rax
mov r10, qword [rbp - 8]
mov r11d, dword [0x1405692e4]
mov r8d, r11d
mov eax, 0x84b2eecb
add eax, dword [0x14056a160]
xor r8d, 1
and eax, r11d
mov ecx, dword [0x1405b48a4]
cmp ecx, 0x53
jge 0x140281840
jmp 0x1402817e0
call fcn.14040686c
mov rax, rsi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov edx, dword [0x14056a160]
mov ecx, edx
xor ecx, 0x84b2eecc
mov r9d, edx
and r9d, 0x4b2eecc
lea ecx, [rcx + r9*2]
imul ecx, eax
add ecx, r8d
mov dword [0x1405692e4], ecx
mov r9d, edx
xor r9d, 0x84b2eecb
and edx, 0x4b2eecb
lea edx, [r9 + rdx*2]
lea r9, [fcn.140281510]
add r9d, r9d
add r9d, 0x3040
test r9d, edx
je 0x1402818da
nop word cs:[rax + rax]
mov r9d, dword [0x14056a160]
mov ecx, r9d
xor ecx, 0x84b2eecc
mov edx, r9d
and edx, 0x4b2eecc
lea edi, [rcx + rdx*2]
mov edx, edi
mov ecx, eax
shl edx, cl
sub r9d, edi
mov edi, 2
mov ecx, edx
shl edi, cl
mov ecx, 4
sub ecx, edi
add edi, 0xfffffffe
imul edi, ecx
mov ecx, 2
sub ecx, edi
imul ecx, edi
mov edx, 2
sub edx, ecx
imul edx, ecx
lea ecx, [r9 + rdx]
add ecx, 0x84b2eeca
add r9d, edx
mov edx, 0x7b4d1138
sub edx, r9d
imul edx, ecx
mov r9d, edx
shl r9d, cl
mov ecx, edx
sub ecx, r9d
imul ecx, r9d
imul ecx, edx
mov edx, r8d
shl edx, cl
add edx, ecx
mov dword [0x1405692e4], edx
mov ecx, dword [0x1405b48a4]
cmp ecx, 0x3b
jge 0x140281840
jmp 0x1402817e0
mov eax, r11d
not eax
xor r11d, ecx
not ecx
nop word cs:[rax + rax]
mov edx, dword [0x1405b48a4]
cmp edx, 0xf
jg 0x14028190f
mov edx, dword [0x1405b48a0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x14028191c
mov edx, dword [0x1405b48a4]
cmp edx, 0x45
jge 0x1402818f0
jmp 0x1402818fb
and eax, ecx
or r11d, eax
xor ecx, ecx
xor r11d, 0xffffffff
mov edx, 0
jne 0x140281995
xor eax, eax
mov ecx, 0
mov edx, 0
test r12d, r12d
jle 0x140281995
xor ecx, ecx
xor edx, edx
nop word cs:[rax + rax]
movsxd r8, eax
mov r9, qword [r15 + r8]
mov r8, qword [r15 + r8 + 8]
nop dword [rax]
mov edi, dword [0x1405b48a0]
lea ebx, [rdi - 1]
imul ebx, edi
test bl, 1
jne 0x140281960
xor rcx, r9
xor rdx, r8
mov r8d, eax
xor r8d, 0x10
and eax, 0x10
add eax, eax
mov r9d, r8d
xor r9d, eax
and eax, r8d
lea eax, [r9 + rax*2]
cmp eax, r12d
jl 0x140281950
cmp r10, 0xf
jbe 0x1402817c9
mov r8, qword [rbp - 0x20]
lea r9, [r10 + 1]
mov rax, qword [0x14056a158]
movabs rdi, 0xb30d86c2e49c305c
xor rdi, rax
movabs rbx, 0x330d86c2e49c305c
and rbx, rax
lea rax, [rdi + rbx*2]
cmp r9, rax
jbe 0x140281b1a
mov rax, qword [r8 - 8]
xor r9d, r9d
test r11d, r11d
setne r9b
mov r11, qword [0x1404782b0]
xor edi, edi
add r9, 0xffffffffffffffff
adc rdi, 0xffffffffffffffff
mov rbx, qword [0x1404782a8]
sub rbx, rcx
sbb r11, rdx
mov ecx, dword [0x1405b48a0]
not r9
not rdi
not r11
mov rcx, r11
xor rcx, rdi
not rbx
mov rdx, rbx
xor rdx, r9
and rdx, rbx
and rcx, r11
or rcx, rdi
or rdx, r9
not rdx
not rcx
mov r9d, 0x84b2eeca
nop word [rax + rax]
mov r11d, dword [0x1405b48a0]
lea edi, [r11 - 1]
imul edi, r11d
and edi, 1
mov r11d, dword [0x14056a160]
add r11d, r9d
cmp edi, r11d
jne 0x140281a40
or rdx, rcx
nop word cs:[rax + rax]
movzx ecx, byte [0x14056a158]
add cl, 0x7d
mov r9, rdx
shr r9, cl
mov ecx, dword [0x1405b48a4]
cmp ecx, 0x1c
jle 0x140281a96
mov ecx, dword [0x1405b48a4]
cmp ecx, 0x2f
jmp 0x140281a70
or r9d, edx
xor ecx, ecx
mov edx, 0x84b2eeca
mov r11d, dword [0x1405b48a0]
mov edi, dword [0x14056a160]
neg edi
add edi, r11d
inc edi
imul edi, r11d
test dil, 1
jne 0x140281ac2
test cl, cl
je 0x140281ae5
mov r11d, dword [0x1405b48a0]
lea edi, [r11 - 1]
imul edi, r11d
and edi, 1
mov r11d, dword [0x14056a160]
add r11d, edx
cmp edi, r11d
jne 0x140281aa0
jmp 0x140281abe
add r9d, dword [0x1405b3a34]
sub r8, rax
add r8, qword [0x14056a158]
mov dword [0x1405b3a34], r9d
movabs rcx, 0xb30d86c2e49c2055
add rcx, r8
cmp rcx, 0x20
jae 0x140281b4b
add r10, 0x28
mov r9, r10
mov r8, rax
mov eax, dword [0x14056a160]
lea ecx, [rax - 0x7b4d1136]
lea edx, [rax - 0x7b4d1135]
lea r10d, [rax + 0x2cd90bdc]
add eax, 0xfa6ffe88
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.140282be0
jmp 0x1402817c9
call fcn.14040686c
int3