Function at 0x140089470
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
xchg rbp, rdi
mov qword [rsp + 0x18], rdi
xchg rbp, rdi
push rdi
mov qword [rsp], rsi
nop
sub rsp, 8
mov qword [rsp], rdi
nop
sub rsp, 8
mov qword [rsp], r14
sub rsp, 0x60
movsxd rax, dword [rcx + 0x3c]
xchg r15, r15
mov r14, rdx
mov rsi, r8
xchg r15, rcx
mov rbx, r15
xchg r15, rcx
mov edx, dword [rax + rcx + 0x98]
test edx, edx
je 0x140089540
mov dword [rsp - 0x28], edi
cmp dword [rax + rcx + 0x9c], 0
je 0x140089540
call fcn.140084810
mov rdi, rax
mov rbx, rbx
test rax, rax
je 0x140089540
movzx r8d, word [rax + 0xe]
mov dword [rsp - 0x1c], edx
xor ebp, ebp
movzx ecx, word [rax + 0xc]
mov edx, ebp
add r8d, ecx
mov dword [rsp - 0x1c], 0x6ece3bf1
je 0x140089540
lea rcx, [rax + 0x10]
mov eax, dword [rcx]
xchg rbp, rbp
test eax, eax
js 0x14008952b
cmp ax, 0x10
je 0x140089578
mov dword [rsp - 0x3c], 0x395750b0
inc edx
neg rcx
add rcx, 0xfffffffffffffff8
neg rcx
cmp edx, r8d
jb 0x14008950c
xor al, al
mov dword [rsp - 0x10], 0x480ea11d
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
xchg rbx, rbp
mov rbx, qword [r11 + 0x30]
xchg rbx, rbp
xchg r14, rsp
mov r14, r11
xchg r14, rsp
pop r14
pop rdi
mov dword [rsp - 0x14], ecx
nop
add rsp, 8
mov rsi, qword [rsp - 8]
ret
mov edx, dword [rcx + 4]
mov dword [rsp - 0x40], 0x372eac99
test edx, edx
jns 0x140089540
btr edx, 0x1f
add rdx, rdi
mov rdx, rdx
je 0x140089540
mov r8d, 0x18fb1d4d
xor r8d, 0x16e4197b
add r8d, 0x34acfe0a
sub r8d, 0x42cc023f
xchg rdx, rdi
mov rcx, rdx
xchg rdx, rdi
call fcn.140089a40
mov dword [rsp - 0x10], esp
test rax, rax
je 0x140089540
mov r8d, 0x19e398ed
xor r8d, 0x22234741
xor r8d, 0x3059cf01
xor r8d, 0x495550fc
sub r8d, 0x42cc3c48
xchg rdx, rax
mov rax, rdx
xchg rdx, rax
mov rcx, rdi
xchg rcx, rcx
call fcn.1400899c0
test rax, rax
je 0x140089540
mov dword [rsp - 0x3c], 0x496443c5
mov edx, dword [rax]
xchg rbp, rcx
mov rbp, rbx
xchg rbp, rcx
call fcn.140084810
mov dword [rsp - 0x40], 0x19543bf4
xchg r11, r8
mov r11, rax
xchg r11, r8
test rax, rax
mov dword [rsp - 0x34], 0x3f2b56c6
je 0x140089540
mov eax, 0x6f494b31
sub eax, 0x26b6fc74
xor eax, 0x4261cdd6
sub eax, 0xaf382da
mov dword [rsp + 0x20], 0x7de42aec
sub dword [rsp + 0x20], 0x592355a9
add dword [rsp + 0x20], 0x952dc2
xor dword [rsp + 0x20], 0x536187
xor dword [rsp + 0x20], 0x251d62b6
mov word [rsp + 0x3c], ax
mov dword [rsp + 0x24], 0x7b8e1a73
sub dword [rsp + 0x24], 0x55bb42b1
add dword [rsp + 0x24], 0x46b3e7de
xor dword [rsp + 0x24], 0x50d53d33
xor dword [rsp + 0x24], 0x3c5d8212
mov dword [rsp + 0x28], 0x122439ca
add dword [rsp + 0x28], 0x6cf9f190
xor dword [rsp + 0x28], 0x2db947ec
sub dword [rsp + 0x28], 0x3516b1f9
sub dword [rsp + 0x28], 0x1d77ba96
mov dword [rsp + 0x2c], 0x23c018b0
sub dword [rsp + 0x2c], 0x21e20e07
add dword [rsp + 0x2c], 0x1d92ce66
xor dword [rsp + 0x2c], 0x63a09408
sub dword [rsp + 0x2c], 0x7cbf4c7a
mov dword [rsp + 0x30], 0x1c3fb287
add dword [rsp + 0x30], 0x357717f5
xor dword [rsp + 0x30], 0x2446a61c
xor dword [rsp + 0x30], 0x17478b40
xor dword [rsp + 0x30], 0x62b2e70d
mov dword [rsp + 0x34], 0x3c703d18
sub dword [rsp + 0x34], 0x2ec4649
sub dword [rsp + 0x34], 0x2d452aa5
sub dword [rsp + 0x34], 0xc2dcba9
mov dword [rsp + 0x38], 0x40bcb2de
add dword [rsp + 0x38], 0x2021af0
add dword [rsp + 0x38], 0xf5a9abe
sub dword [rsp + 0x38], 0x520c6860
mov qword [rsp + 0x80], rbp
xchg r9, rax
mov r9, qword [rsp + 0x80]
xchg r9, rax
nop dword [rax]
nop word [rax + rax]
mov dword [rsp - 0x2c], 0x210dbc75
xchg rdi, rcx
mov rdi, qword [rsp + 0x80]
xchg rdi, rcx
xchg r13, rax
mov r13, qword [rsp + 0x80]
xchg r13, rax
and cl, 3
xchg r13, r13
shl cl, 1
shl cl, 1
shl cl, 1
movzx edx, word [rsp + rax*2 + 0x20]
mov dword [rsp - 0x20], edi
mov eax, 0x7d1ba5fb
sub eax, 0x77c1e844
add eax, 0x2ddde567
sub eax, 0x24a3e686
add eax, 0x4a4a8eca
shr eax, cl
movzx ecx, al
xchg rdx, rax
mov rdx, qword [rsp + 0x80]
xchg rdx, rax
xor cx, dx
xchg r9, r9
mov word [rsp + rax*2 + 0x3e], cx
xchg rdx, rax
mov rdx, qword [rsp + 0x80]
xchg rdx, rax
inc rax
xchg r14, rax
mov qword [rsp + 0x80], r14
xchg r14, rax
xchg rdi, rax
mov rdi, qword [rsp + 0x80]
xchg rdi, rax
cmp rax, 0xf
jb 0x140089793
lea rax, [r8 + 6]
xchg rsi, rsi
mov word [rsp + 0x5c], bp
lea rdi, [rsp + 0x3e]
sub rdi, rax
nop word [rax + rax]
mov dword [rsp - 0x38], 0x53eb1b17
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x14008986f
mov dword [rsp - 0x34], edi
add rax, 2
test ecx, ecx
jne 0x14008984d
xchg r8, r8
xor eax, eax
lea rdi, [rsp + 0x3e]
mov ecx, 0x27b22cb3
sub ecx, 0x14d6d5d7
add ecx, 0x3aae2df0
xor ecx, 0x4d8984c3
rep stosb byte [rdi], al
mov dword [rsp - 0x2c], esp
test edx, edx
jne 0x140089540
mov eax, dword [r8 + 0x28]
mov dword [rsp - 0xc], 0x4571d539
xor eax, 0x38171a3c
cmp eax, 0xc6f81e81
jne 0x140089540
xchg rcx, rcx
cmp dword [r8 + 0x2c], 0x10000
jne 0x140089540
mov eax, dword [r8 + 0x30]
mov dword [rsp - 0x2c], ebp
mov dword [r14], eax
mov eax, dword [r8 + 0x34]
mov dword [rsi], eax
mov r11, r11
mov al, 0x3a
sub al, 0x38
add al, 0x5e
xor al, 0x56
xor al, 0x37
jmp 0x14008954a