Function at 0x140088a20
Capabilities:
Encode data using xor

Disassembly:
xchg r12, rbx
mov qword [rsp + 0x10], r12
xchg r12, rbx
xchg rbp, r10
mov qword [rsp + 0x18], r10
xchg rbp, r10
push rsi
nop
push 0x4cd582d5
mov qword [rsp], rdi
push r14
mov dword [rsp - 0x3c], esp
nop
add rsp, 0x78fa2d2
sub rsp, 0x78fa332
movsxd rax, dword [rcx + 0x3c]
xchg rbx, rbx
xchg r14, rsi
mov rsi, rdx
xchg rsi, r14
xchg r8, rbx
mov rsi, rbx
xchg r8, rbx
mov rbx, rcx
mov dword [rsp - 0x30], 0x3db88154
mov edx, dword [rax + rcx + 0x98]
test edx, edx
je 0x140088b0b
mov rcx, rcx
cmp dword [rax + rcx + 0x9c], 0
je 0x140088b0b
call fcn.140083e90
mov dword [rsp - 0x1c], ecx
xchg r11, rax
mov rdi, r11
xchg r11, rax
test rax, rax
xchg rsp, rsp
je 0x140088b0b
movzx r8d, word [rax + 0xe]
xor ebp, ebp
mov dword [rsp - 0x3c], esp
movzx ecx, word [rax + 0xc]
mov edx, ebp
add r8d, ecx
mov dword [rsp - 0x20], edx
je 0x140088b0b
lea rcx, [rax + 0x10]
mov eax, dword [rcx]
mov r12, r12
test eax, eax
js 0x140088af3
cmp ax, 0x10
je 0x140088b41
mov dword [rsp - 0x2c], esi
inc edx
neg rcx
add rcx, 0xfffffffffffffff8
neg rcx
cmp edx, r8d
jb 0x140088ad8
mov r12, r12
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x28]
xchg r10, rbp
mov r10, qword [r11 + 0x30]
xchg r10, rbp
xchg r11, r12
mov rsp, r12
xchg r12, r11
pop r14
mov r12, r12
nop
mov rdi, qword [rsp]
add rsp, 8
pop rsi
mov dword [rsp - 0x44], 0x264e633d
ret
mov edx, dword [rcx + 4]
test edx, edx
mov dword [rsp - 0x30], 0x4c7395a0
jns 0x140088b0b
btr edx, 0x1f
add rdx, rdi
mov dword [rsp - 0xc], 0xfd1e52d
je 0x140088b0b
mov r8d, 0x77c720cb
sub r8d, 0x38855f9c
xor r8d, 0x3023e521
add r8d, 0x24ded8d6
sub r8d, 0x3440fce3
xchg rcx, r11
mov r11, rdi
xchg r11, rcx
call fcn.140088fe0
mov dword [rsp - 0x3c], 0x533d0580
test rax, rax
je 0x140088b0b
mov r8d, 0x52f227aa
sub r8d, 0x152ea6d5
xor r8d, 0x781ead88
xor r8d, 0xdb004f5
sub r8d, 0x486d259f
xchg rsi, rax
mov rdx, rsi
xchg rsi, rax
mov rcx, rdi
xchg rsp, rsp
call fcn.140088f70
test rax, rax
je 0x140088b0b
mov edx, dword [rax]
xchg rsp, rsp
xchg rcx, rbx
mov rbx, rcx
xchg rcx, rbx
call fcn.140083e90
mov r12, r12
xchg r8, rax
mov rax, r8
xchg r8, rax
test rax, rax
je 0x140088b0b
mov dword [rsp - 0xc], esp
mov eax, 0x2ab071bd
sub eax, 0x245cbec6
add eax, 0x6f71a883
sub eax, 0x1e3a7732
sub eax, 0x578ae37c
mov dword [rsp + 0x20], 0xe221b32
add dword [rsp + 0x20], 0x5a68c735
xor dword [rsp + 0x20], 0x4c71802c
xor dword [rsp + 0x20], 0x321f0c2b
sub dword [rsp + 0x20], 0x16826d72
mov word [rsp + 0x3c], ax
xchg r8, r8
mov dword [rsp + 0x24], 0x6f838116
xor dword [rsp + 0x24], 0x4a8cc535
xor dword [rsp + 0x24], 0x1af3a62b
xor dword [rsp + 0x24], 0x3ff7e2d4
mov dword [rsp + 0x28], 0x3db90a6f
sub dword [rsp + 0x28], 0x1f8b0241
sub dword [rsp + 0x28], 0x2f7f67b
add dword [rsp + 0x28], 0x7a143c
xor dword [rsp + 0x28], 0x1bd32512
mov dword [rsp + 0x2c], 0x421976b1
xor dword [rsp + 0x2c], 0x2788ff08
xor dword [rsp + 0x2c], 0x6e75a692
xor dword [rsp + 0x2c], 0xbf02ffb
mov dword [rsp + 0x30], 0x58685756
xor dword [rsp + 0x30], 0x1859c453
xor dword [rsp + 0x30], 0xbade9bd
xor dword [rsp + 0x30], 0x77a4c1a9
sub dword [rsp + 0x30], 0x3bb9ba1a
mov dword [rsp + 0x34], 0x61811aa5
sub dword [rsp + 0x34], 0x443fd3f4
add dword [rsp + 0x34], 0x19f77dba
sub dword [rsp + 0x34], 0x3724c38f
mov dword [rsp + 0x38], 0x2d5f0cb
add dword [rsp + 0x38], 0x3a833939
sub dword [rsp + 0x38], 0x26fa4260
xor dword [rsp + 0x38], 0x1629e752
mov qword [rsp + 0x80], rbp
xchg rsi, rax
mov rsi, qword [rsp + 0x80]
xchg rsi, rax
nop dword [rax]
xchg rbx, rbx
nop word [rax + rax]
xchg rcx, rdi
mov rdi, qword [rsp + 0x80]
xchg rcx, rdi
mov rax, qword [rsp + 0x80]
mov dword [rsp - 0x20], ecx
and cl, 3
shl cl, 3
movzx edx, word [rsp + rax*2 + 0x20]
mov eax, 0x1804f5e
add eax, 0x2118a224
xor eax, 0x7d55e604
add eax, 0x1ea1c7b7
sub eax, 0x20ebad85
shr eax, cl
movzx ecx, al
mov dword [rsp - 0x18], 0x18f516f5
mov rax, qword [rsp + 0x80]
xor cx, dx
mov word [rsp + rax*2 + 0x3e], cx
mov rax, qword [rsp + 0x80]
mov dword [rsp - 0x1c], 0x3ed03952
inc rax
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x80]
mov dword [rsp - 0xc], 0x769c4d96
cmp rax, 0xf
jb 0x140088d4f
lea rax, [r8 + 6]
mov word [rsp + 0x5c], bp
mov r15, r15
lea rdi, [rsp + 0x3e]
sub rdi, rax
nop word [rax + rax]
movzx edx, word [rax]
mov rsp, rsp
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x140088e23
xchg r9, r9
neg rax
add rax, 0xfffffffffffffffe
neg rax
test ecx, ecx
jne 0x140088dfc
xor eax, eax
mov dword [rsp - 0x18], edx
lea rdi, [rsp + 0x3e]
mov ecx, 0x734dd54e
sub ecx, 0x2ccb5570
xor ecx, 0x48eaa5e
sub ecx, 0x420cd571
rep stosb byte [rdi], al
test edx, edx
jne 0x140088b0b
mov rcx, rcx
mov eax, dword [r8 + 0x28]
xor eax, 0x26f16147
cmp eax, 0xd81e65fa
mov r12, r12
jne 0x140088b0b
cmp dword [r8 + 0x2c], 0x10000
jne 0x140088b0b
mov eax, dword [r8 + 0x30]
mov rdi, rdi
mov dword [r14], eax
mov eax, dword [r8 + 0x34]
mov dword [rsi], eax
mov al, 0x17
xor al, 0x63
sub al, 0x27
sub al, 0x45
xor al, 9
jmp 0x140088b0d