Function at 0x140031a20
Capabilities:
Encode data using xor

Disassembly:
xchg rcx, rsi
mov qword [rsp + 8], rsi
xchg rcx, rsi
nop
sub rsp, 8
mov qword [rsp], rbx
push rsi
nop
mov qword [rsp - 8], rdi
sub rsp, 8
push r12
push r13
nop
sub rsp, 8
mov qword [rsp], r14
nop
sub rsp, 8
mov qword [rsp], r15
sub rsp, 0x40
xchg rdx, rbx
mov rdx, r8
xchg rdx, rbx
xchg rsi, rdx
mov rdx, rsi
xchg rsi, rdx
mov r13, rcx
mov rdx, qword [rcx]
xchg r15, r13
mov r13, rsi
xchg r15, r13
sub r15, rdx
mov rax, qword [rcx + 8]
sub rax, rdx
sar rax, 4
movabs r14, 0xfffffff27bf155c
xor r14, 0x6399004e
sub r14, 0x17b585c5
sub r14, 0x15d49d9c
xor r14, 0x42912b0f
add r14, 0x7fffffff
add r14, 0x2bf52542
cmp rax, r14
je 0x140031d68
lea r8, [rax + 1]
mov qword [rsp + 0x28], r8
mov rcx, qword [rcx + 0x10]
sub rcx, rdx
sar rcx, 1
sar rcx, 3
xchg rdx, r12
mov r12, rcx
xchg rdx, r12
shr rdx, 1
mov rax, r14
sub rax, rdx
cmp rcx, rax
ja 0x140031b02
lea r14, [rdx + rcx]
cmp r14, r8
cmovb r14, r8
xchg r8, r14
mov qword [rsp + 0x20], r8
xchg r8, r14
mov rdx, r14
xchg r13, rbp
mov rcx, rbp
xchg r13, rbp
call fcn.1400538b0
mov r12, rax
mov qword [rsp + 0x38], rax
and r15, 0xfffffffffffffff0
add rax, r15
mov qword [rsp + 0x88], rax
lea rcx, [rax + 0x10]
xchg rcx, r9
mov qword [rsp + 0x30], r9
xchg rcx, r9
mov byte [rax], 0x67
xor byte [rax], 2
sub byte [rax], 0xc
sub byte [rax], 0x31
add byte [rax], 0
add byte [rax], 0x11
xor byte [rax], 0x5a
sub byte [rax], 0x63
lea rdi, [rax + 8]
xor ecx, ecx
xchg r10, rcx
mov qword [rdi], r10
xchg rcx, r10
mov rbx, qword [rbx]
movzx edx, byte [rax]
xchg rdi, r11
mov rcx, r11
xchg rdi, r11
call fcn.140054340
nop
mov rax, qword [rsp + 0x88]
mov byte [rax], 0x53
sub byte [rax], 0x1c
sub byte [rax], 0x13
add byte [rax], 0x2c
add byte [rax], 0x1c
xor byte [rax], 0x69
xchg rbp, rbx
mov qword [rdi], rbp
xchg rbp, rbx
mov qword [rsp + 0x98], rax
mov r9, qword [r13 + 8]
mov rax, qword [r13]
xchg r12, r8
mov rdx, r8
xchg r12, r8
cmp rsi, r9
jne 0x140031c16
cmp rax, r9
je 0x140031cde
xor r8d, r8d
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
mov rcx, qword [rax + 8]
xchg rdi, rcx
mov qword [rdx + 8], rdi
xchg rdi, rcx
mov byte [rax], r8b
xchg r8, r15
mov qword [rax + 8], r15
xchg r15, r8
lea rdx, [rdx + 0x10]
sub rax, 0xfffffffffffffff0
cmp rax, r9
jne 0x140031be0
jmp 0x140031cde
xor r8d, r8d
cmp rax, rsi
je 0x140031c61
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx], cl
xchg rcx, rbp
mov rbp, qword [rax + 8]
xchg rcx, rbp
mov qword [rdx + 8], rcx
mov byte [rax], r8b
xchg r13, r8
mov qword [rax + 8], r13
xchg r8, r13
lea rdx, [rdx + 0x10]
nop
sub rax, 0x3c264931
add rax, 0x3c264941
cmp rax, rsi
jne 0x140031c27
xchg r12, rdx
mov qword [rsp + 0x98], rdx
xchg rdx, r12
xchg rbp, rdx
mov rbp, qword [r13 + 8]
xchg rbp, rdx
cmp rsi, rdx
je 0x140031cde
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 r15, rax
mov r15, qword [rcx]
xchg r15, rax
xchg r12, rax
mov qword [r9 + rcx + 0x10], r12
xchg r12, rax
mov byte [rcx - 8], 0x22
add byte [rcx - 8], 0x21
add byte [rcx - 8], 0x2b
xor byte [rcx - 8], 0x14
xor byte [rcx - 8], 0x6b
add byte [rcx - 8], 0x29
add byte [rcx - 8], 0x1a
sub byte [rcx - 8], 0x54
mov qword [rcx], r8
lea rcx, [rcx + 0x10]
lea rax, [rcx - 8]
cmp rax, rdx
jne 0x140031c91
xchg r14, r9
mov r14, r9
xchg r14, r9
xchg r8, rbx
mov rbx, qword [rsp + 0x28]
xchg rbx, r8
xchg rdx, rdi
mov rdi, r12
xchg rdi, rdx
xchg rcx, rsi
mov rsi, r13
xchg rsi, rcx
call fcn.140052a50
xchg r13, rax
mov r13, qword [rsp + 0x88]
xchg r13, rax
add rsp, 0x40
nop
add rsp, 8
xchg qword [rsp - 8], r15
nop
xchg qword [rsp], r14
add rsp, 8
nop
add rsp, 8
xchg qword [rsp - 8], r13
nop
mov r12, qword [rsp]
add rsp, 8
nop
add rsp, 8
mov rdi, qword [rsp - 8]
push rdx
push rcx
xchg qword [rsp + 0x10], rsi
pop rcx
pop rdx
add rsp, 8
nop
mov rbx, qword [rsp]
add rsp, 8
nop
add rsp, 8
jmp qword [rsp - 8]
call fcn.14002f860
int3