Function at 0x140088430
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x150
mov rax, qword [0x140114038]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov ebx, r8d
mov rsi, rdx
mov r14, rcx
xor edx, edx
mov r8d, 0x120
lea rcx, [rsp + 0x20]
call fcn.1400b6340
lea rdi, [r14 + 0x10]
mov r8d, ebx
mov rdx, rsi
mov qword [r14 + 8], rdi
lea rcx, [rsp + 0x20]
call fcn.140087ba0
mov r11d, eax
test eax, eax
jne 0x140088698
mov ecx, dword [rsp + 0x20]
mov dword [r14], ecx
lea ecx, [rcx*4]
movsxd rdx, ecx
mov rcx, qword [rsp + 0x28]
lea r9, [rcx + rdx*4]
mov ecx, dword [rcx + rdx*4]
mov dword [rdi], ecx
mov ecx, dword [r9 + 4]
mov dword [rdi + 4], ecx
mov eax, dword [r9 + 8]
mov dword [rdi + 8], eax
mov eax, dword [r9 + 0xc]
sub r9, 0x10
mov dword [rdi + 0xc], eax
add rdi, 0x10
mov r10d, dword [r14]
dec r10d
test r10d, r10d
jle 0x14008867e
lea rbx, [0x140000000]
nop word [rax + rax]
mov r8d, dword [r9]
dec r10d
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
mov eax, r8d
shr rax, 0x18
mov edx, dword [rbx + rcx*4 + 0x118420]
movzx eax, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x1172f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
shr r8d, 8
movzx eax, byte [rcx + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x119020]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rcx*4 + 0x118020]
mov dword [rdi], edx
mov r8d, dword [r9 + 4]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
mov eax, r8d
shr rax, 0x18
mov edx, dword [rbx + rcx*4 + 0x118420]
movzx eax, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x1172f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
shr r8d, 8
movzx eax, byte [rcx + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x119020]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rcx*4 + 0x118020]
mov dword [rdi + 4], edx
mov r8d, dword [r9 + 8]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
mov eax, r8d
shr rax, 0x18
mov edx, dword [rbx + rcx*4 + 0x118420]
movzx eax, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x1172f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
shr r8d, 8
movzx eax, byte [rcx + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x119020]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rcx*4 + 0x118020]
mov dword [rdi + 8], edx
mov r8d, dword [r9 + 0xc]
sub r9, 0x10
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
mov eax, r8d
shr rax, 0x18
mov edx, dword [rbx + rcx*4 + 0x118420]
movzx eax, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x1172f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
shr r8d, 8
movzx eax, byte [rcx + rbx + 0x1171f0]
xor edx, dword [rbx + rax*4 + 0x119020]
movzx eax, r8b
movzx ecx, byte [rax + rbx + 0x1171f0]
xor edx, dword [rbx + rcx*4 + 0x118020]
mov dword [rdi + 0xc], edx
add rdi, 0x10
test r10d, r10d
jg 0x1400884f0
mov eax, dword [r9]
mov dword [rdi], eax
mov eax, dword [r9 + 4]
mov dword [rdi + 4], eax
mov eax, dword [r9 + 8]
mov dword [rdi + 8], eax
mov eax, dword [r9 + 0xc]
mov dword [rdi + 0xc], eax
xor eax, eax
lea rdi, [rsp + 0x20]
mov ecx, 0x120
rep stosb byte [rdi], al
mov eax, r11d
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1400b3780
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret