Function at 0x140031a90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
nop
sub rsp, 8
mov qword [rsp], rbx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
nop
sub rsp, 8
mov qword [rsp], rdi
nop
sub rsp, 8
mov qword [rsp], r12
nop
sub rsp, 8
mov qword [rsp], r13
nop
mov qword [rsp - 8], r14
sub rsp, 8
push r15
sub rsp, 0x40
xchg r8, rbx
mov r8, rbx
xchg r8, rbx
xchg rsi, rdx
mov rdx, rsi
xchg rsi, rdx
xchg rcx, r13
mov rcx, r13
xchg r13, rcx
mov rdx, qword [rcx]
mov r15, rsi
sub r15, rdx
xchg r11, rax
mov r11, qword [rcx + 8]
xchg r11, rax
sub rax, rdx
sar rax, 1
sar rax, 1
sar rax, 2
movabs r14, 0xfffffff5673e89c
sub r14, 0x218b913f
xor r14, 0x5c8c4a1d
sub r14, 0x2d892522
add r14, 0x30bc728e
sub r14, 0x5c229db7
add r14, 0x3a3be44
add r14, 0x7fffffff
add r14, 0x6ce774c7
cmp rax, r14
je 0x140031df1
lea r8, [rax + 1]
mov qword [rsp + 0x28], r8
mov rcx, qword [rcx + 0x10]
sub rcx, rdx
sar rcx, 2
sar rcx, 2
xchg rdx, r9
mov r9, rcx
xchg rdx, r9
shr rdx, 1
xchg rsi, r14
mov rax, rsi
xchg r14, rsi
sub rax, rdx
cmp rcx, rax
ja 0x140031b9b
lea r14, [rdx + rcx]
cmp r14, r8
cmovb r14, r8
xchg r11, r14
mov qword [rsp + 0x20], r11
xchg r14, r11
xchg rdx, r11
mov r11, r14
xchg r11, rdx
xchg r14, r13
mov rcx, r14
xchg r13, r14
call fcn.140053970
xchg r12, r9
mov r9, rax
xchg r12, r9
xchg rcx, rax
mov qword [rsp + 0x38], rcx
xchg rcx, rax
and r15, 0xfffffffffffffff0
add rax, r15
mov qword [rsp + 0x88], rax
lea rcx, [rax + 0x10]
mov qword [rsp + 0x30], rcx
mov byte [rax], 0x55
add byte [rax], 4
xor byte [rax], 0x2c
xor byte [rax], 0x31
xor byte [rax], 0x35
sub byte [rax], 0x71
lea rdi, [rax + 8]
xor ecx, ecx
xchg rcx, r8
mov qword [rdi], r8
xchg rcx, r8
mov rbx, qword [rbx]
movzx edx, byte [rax]
xchg rcx, rdi
mov rdi, rcx
xchg rdi, rcx
call fcn.1400543d0
nop
xchg r15, rax
mov r15, qword [rsp + 0x88]
xchg r15, rax
mov byte [rax], 0x7a
sub byte [rax], 0x67
add byte [rax], 0x26
add byte [rax], 3
add byte [rax], 0x34
xor byte [rax], 0x7d
add byte [rax], 0x71
sub byte [rax], 0x79
mov qword [rdi], rbx
mov qword [rsp + 0x98], rax
mov r9, qword [r13 + 8]
xchg r12, rax
mov r12, qword [r13]
xchg r12, rax
xchg r12, rcx
mov rdx, rcx
xchg rcx, r12
cmp rsi, r9
jne 0x140031cc4
cmp rax, r9
je 0x140031d6b
xor r8d, r8d
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
mov rcx, qword [rax + 8]
xchg rcx, r9
mov qword [rdx + 8], r9
xchg r9, rcx
mov byte [rax], r8b
xchg r8, r15
mov qword [rax + 8], r15
xchg r15, r8
lea rdx, [rdx + 0x10]
nop
add rax, 0x78a755d9
sub rax, 0x78a755c9
cmp rax, r9
jne 0x140031c85
jmp 0x140031d6b
xor r8d, r8d
cmp rax, rsi
je 0x140031d00
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
mov rcx, qword [rax + 8]
mov qword [rdx + 8], rcx
mov byte [rax], r8b
xchg r12, r8
mov qword [rax + 8], r12
xchg r12, r8
lea rdx, [rdx + 0x10]
add rax, 0x10
cmp rax, rsi
jne 0x140031cd5
mov qword [rsp + 0x98], r12
xchg rcx, rdx
mov rcx, qword [r13 + 8]
xchg rdx, rcx
cmp rsi, rdx
je 0x140031d6b
lea rcx, [rsi + 8]
sub r15, rsi
lea r9, [r15 + r12]
lea r10, [r15 + r12]
movzx eax, byte [rcx - 8]
mov byte [r10 + rcx + 8], al
xchg rbp, rax
mov rbp, qword [rcx]
xchg rbp, rax
mov qword [r9 + rcx + 0x10], rax
mov byte [rcx - 8], 0x21
xor byte [rcx - 8], 0x54
xor byte [rcx - 8], 0x63
add byte [rcx - 8], 0x17
xor byte [rcx - 8], 0x20
sub byte [rcx - 8], 0xd
mov qword [rcx], r8
lea rcx, [rcx + 0x10]
lea rax, [rcx - 8]
cmp rax, rdx
jne 0x140031d2a
xchg r14, r10
mov r9, r10
xchg r14, r10
xchg r8, rbp
mov rbp, qword [rsp + 0x28]
xchg r8, rbp
xchg r10, r12
mov rdx, r10
xchg r12, r10
mov rcx, r13
call fcn.140052af0
xchg r15, rax
mov r15, qword [rsp + 0x88]
xchg r15, rax
add rsp, 0x40
nop
add rsp, 8
mov r15, qword [rsp - 8]
push rax
push rdx
xchg qword [rsp + 0x10], r14
pop rdx
pop rax
add rsp, 8
nop
add rsp, 8
mov r13, qword [rsp - 8]
nop
xchg qword [rsp], r12
add rsp, 8
nop
add rsp, 8
mov rdi, qword [rsp - 8]
nop
add rsp, 8
xchg qword [rsp - 8], rsi
nop
add rsp, 8
xchg qword [rsp - 8], rbx
nop
add rsp, 8
jmp qword [rsp - 8]
call fcn.14002f900
int3