Function at 0x140031a40
Capabilities:
Encode data using xor

Disassembly:
xchg rbp, rcx
mov qword [rsp + 8], rbp
xchg rbp, rcx
push rbx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
push rdi
push r8
mov qword [rsp], r12
nop
sub rsp, 8
mov qword [rsp], r13
push r14
push rcx
mov qword [rsp], r15
sub rsp, 0x40
mov rbx, r8
xchg rsi, rdx
mov rdx, rsi
xchg rsi, rdx
mov r13, rcx
mov rdx, qword [rcx]
mov r15, rsi
sub r15, rdx
xchg r14, rax
mov r14, qword [rcx + 8]
xchg r14, rax
sub rax, rdx
sar rax, 1
sar rax, 3
movabs r14, 0xfffffff285a9cac
xor r14, 0x2bedc731
add r14, 0x5b1291da
add r14, 0x14869c7c
sub r14, 0x136a6eae
add r14, 0x13b3103f
xor r14, 0x1a45156f
add r14, 0x7fffffff
add r14, 0x1623c115
cmp rax, r14
je 0x140031d50
lea r8, [rax + 1]
mov qword [rsp + 0x28], r8
mov rcx, qword [rcx + 0x10]
sub rcx, rdx
sar rcx, 1
sar rcx, 1
sar rcx, 2
xchg r11, rcx
mov rdx, r11
xchg rcx, r11
shr rdx, 1
xchg r14, rax
mov r14, rax
xchg r14, rax
sub rax, rdx
cmp rcx, rax
ja 0x140031b2a
lea r14, [rdx + rcx]
cmp r14, r8
cmovb r14, r8
mov qword [rsp + 0x20], r14
mov rdx, r14
xchg r13, rdx
mov rcx, rdx
xchg r13, rdx
call fcn.140053860
mov r12, rax
mov qword [rsp + 0x38], rax
and r15, 0xfffffffffffffff0
add rax, r15
xchg rbx, rax
mov qword [rsp + 0x88], rbx
xchg rbx, rax
lea rcx, [rax + 0x10]
xchg rcx, rbx
mov qword [rsp + 0x30], rbx
xchg rbx, rcx
mov byte [rax], 0x58
sub byte [rax], 0x13
sub byte [rax], 0x31
add byte [rax], 0x47
sub byte [rax], 0x19
xor byte [rax], 0x16
add byte [rax], 0x10
xor byte [rax], 0x4e
xor byte [rax], 0x2a
lea rdi, [rax + 8]
xor ecx, ecx
xchg rcx, rdx
mov qword [rdi], rdx
xchg rdx, rcx
mov rbx, qword [rbx]
movzx edx, byte [rax]
mov rcx, rdi
call fcn.140054300
nop
mov rax, qword [rsp + 0x88]
mov byte [rax], 0x77
xor byte [rax], 0x49
xor byte [rax], 0x12
xor byte [rax], 0x56
xor byte [rax], 0x44
sub byte [rax], 0x39
mov qword [rdi], rbx
xchg r14, rax
mov qword [rsp + 0x98], r14
xchg r14, rax
mov r9, qword [r13 + 8]
mov rax, qword [r13]
xchg r12, r11
mov rdx, r11
xchg r12, r11
cmp rsi, r9
jne 0x140031c2b
cmp rax, r9
je 0x140031cd8
xor r8d, r8d
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
mov rcx, qword [rax + 8]
mov qword [rdx + 8], rcx
mov byte [rax], r8b
mov qword [rax + 8], r8
lea rdx, [rdx + 0x10]
add rax, 0x10
cmp rax, r9
jne 0x140031c01
jmp 0x140031cd8
xor r8d, r8d
cmp rax, rsi
je 0x140031c6d
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
xchg rdi, rcx
mov rdi, qword [rax + 8]
xchg rcx, rdi
mov qword [rdx + 8], rcx
mov byte [rax], r8b
mov qword [rax + 8], r8
lea rdx, [rdx + 0x10]
neg rax
add rax, 0xfffffffffffffff0
neg rax
cmp rax, rsi
jne 0x140031c3c
mov qword [rsp + 0x98], r12
mov rdx, qword [r13 + 8]
cmp rsi, rdx
je 0x140031cd8
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
mov rax, qword [rcx]
mov qword [r9 + rcx + 0x10], rax
mov byte [rcx - 8], 0x73
sub byte [rcx - 8], 0x64
xor byte [rcx - 8], 0x54
add byte [rcx - 8], 0xf
sub byte [rcx - 8], 0x42
xor byte [rcx - 8], 0x76
xor byte [rcx - 8], 0x5e
xchg r8, r9
mov qword [rcx], r9
xchg r9, r8
lea rcx, [rcx + 0x10]
lea rax, [rcx - 8]
cmp rax, rdx
jne 0x140031c91
xchg r14, r9
mov r14, r9
xchg r9, r14
xchg r8, r13
mov r13, qword [rsp + 0x28]
xchg r13, r8
xchg r12, r10
mov rdx, r10
xchg r10, r12
xchg rcx, r13
mov r13, rcx
xchg r13, rcx
call fcn.140052970
mov rax, qword [rsp + 0x88]
add rsp, 0x40
nop
xchg qword [rsp], r15
add rsp, 8
nop
mov r14, qword [rsp]
add rsp, 8
nop
mov r13, qword [rsp]
add rsp, 8
nop
mov r12, qword [rsp]
add rsp, 8
nop
xchg qword [rsp], rdi
add rsp, 8
nop
mov rsi, qword [rsp]
add rsp, 8
nop
add rsp, 8
mov rbx, qword [rsp - 8]
ret
call fcn.14002f860
int3