Function at 0x2bbfea700
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbp, qword [0x2bc041fd0]
mov rax, qword [rbp]
mov rdi, rcx
mov rsi, rdx
mov rbx, r9
cmp r8, 2
je 0x2bbfea7a8
cmp r8, 4
jne 0x2bbfea788
lea rcx, [rsp + 0x4c]
mov rdx, qword [r9 + 0x10]
lea r8, [0x2bc03f4a0]
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x30], rcx
lea rcx, str.selection_operation
mov r9d, 8
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call qword [rax + 0x990]
mov r12d, eax
test eax, eax
je 0x2bbfea868
mov eax, 1
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
lea r9, str._addremovesettoggle_items_
mov r8, rbx
mov edx, 2
mov rcx, rsi
call qword [rax + 0x850]
jmp 0x2bbfea773
xor edx, edx
xor ecx, ecx
call qword [rax + 0x1b8]
mov r12, rax
mov rax, qword [rdi + 0x130]
mov rbx, qword [rax + 0x10]
test rbx, rbx
jne 0x2bbfea805
nop dword [rax]
mov rax, qword [rbp]
mov rdx, r12
mov rcx, rsi
call qword [rax + 0x768]
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x2bbfea7c8
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x2bbfea7f0
mov rbx, rax
test byte [rbx + 0x28], 0x10
jne 0x2bbfea820
mov rax, qword [rbx + 0x10]
test rax, rax
jne 0x2bbfea802
jmp 0x2bbfea7f9
mov rax, qword [rbp]
mov rdx, qword [rbx]
mov r13, qword [rax + 0x170]
mov r8, qword [rax + 0x1d0]
lea rcx, [rdx + 0x20]
mov eax, dword [rdi + 0x10c]
add eax, 1
and eax, 0xfffffffd
jne 0x2bbfea84b
mov rcx, qword [rdx + 0x20]
mov rdx, 0xffffffffffffffff
call r8
mov rdx, r12
xor ecx, ecx
mov r8, rax
call r13
jmp 0x2bbfea80b
mov r8, qword [rbx + 0x18]
mov rcx, rsi
mov rdx, rdi
call sym.GetItemListFromObj
mov rcx, rax
test rax, rax
je 0x2bbfea773
mov rax, qword [rbp]
mov r9d, dword [rsp + 0x4c]
mov r8, qword [rax + 0x30]
cmp r9d, 2
je 0x2bbfea9bb
jg 0x2bbfea983
test r9d, r9d
je 0x2bbfea8fb
cmp r9d, 1
jne 0x2bbfea9b3
mov rax, qword [rcx]
lea r9, [rcx + 8]
test rax, rax
je 0x2bbfea9b3
nop
mov edx, dword [rax + 0x28]
test dl, 0x10
jne 0x2bbfea8d4
or edx, 0x10
mov r12d, 1
mov dword [rax + 0x28], edx
mov rax, qword [r9]
add r9, 8
test rax, rax
jne 0x2bbfea8c0
call r8
test r12d, r12d
jne 0x2bbfea96c
mov rcx, rdi
call sym.TtkRedisplayWidget
xor eax, eax
jmp 0x2bbfea7da
mov rax, qword [rdi + 0x130]
test rax, rax
jne 0x2bbfea913
jmp 0x2bbfea9ab
mov rax, rdx
mov edx, dword [rax + 0x28]
test dl, 0x10
je 0x2bbfea927
and edx, 0xffffffef
mov r9d, 1
mov dword [rax + 0x28], edx
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x2bbfea910
mov rdx, qword [rax + 0x18]
test rdx, rdx
jne 0x2bbfea910
mov rax, qword [rax + 8]
test rax, rax
jne 0x2bbfea930
mov rax, qword [rcx]
test rax, rax
je 0x2bbfea9f5
lea rdx, [rcx + 8]
nop word [rax + rax]
add rdx, 8
or dword [rax + 0x28], 0x10
mov rax, qword [rdx - 8]
test rax, rax
jne 0x2bbfea958
call r8
mov rcx, qword [rdi]
xor r8d, r8d
lea rdx, str.TreeviewSelect
call sym.tcl9tk90.dll_Tk_SendVirtualEvent
jmp 0x2bbfea8ec
cmp r9d, 3
jne 0x2bbfea9b3
mov rax, qword [rcx]
lea rdx, [rcx + 8]
test rax, rax
je 0x2bbfea9b3
nop dword [rax]
add rdx, 8
xor dword [rax + 0x28], 0x10
mov rax, qword [rdx - 8]
test rax, rax
jne 0x2bbfea998
jmp 0x2bbfea969
mov rax, qword [rcx]
test rax, rax
jne 0x2bbfea94e
call r8
jmp 0x2bbfea8ec
mov rax, qword [rcx]
lea r9, [rcx + 8]
test rax, rax
je 0x2bbfea9b3
nop word [rax + rax]
mov edx, dword [rax + 0x28]
test dl, 0x10
je 0x2bbfea9e4
and edx, 0xffffffef
mov r12d, 1
mov dword [rax + 0x28], edx
mov rax, qword [r9]
add r9, 8
test rax, rax
jne 0x2bbfea9d0
jmp 0x2bbfea8e0
mov r12d, r9d
jmp 0x2bbfea8e0