Function at 0x1402be200
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov ebx, r9d
mov dword [rsp + 0x2c], r8d
mov ebp, edx
mov rdi, rcx
mov rax, qword [0x1404dd9c8]
xor rax, rsp
mov qword [rsp + 0x40], rax
test edx, edx
jle 0x1402be264
mov eax, ebp
shl rax, 5
lea r14, [rax + rax*4]
xor r15d, r15d
xor esi, esi
nop
mov rcx, qword [rdi + 0x370]
add rcx, r15
mov edx, 0x357f6f87
call fcn.1402c1100
add esi, eax
add r15, 0xa0
cmp r14, r15
jne 0x1402be240
jmp 0x1402be266
xor esi, esi
movsxd rax, ebp
lea rcx, [rax + rax*4]
shl rcx, 5
add rcx, qword [rdi + 0x370]
mov edx, ebx
mov r8d, 0x8088295b
call fcn.1402c0b50
mov r15d, eax
add r15d, esi
lea r12, [rdi + 0xe8]
add r15d, dword [rdi + 0x388]
test byte [rdi + 0x334], 2
jne 0x1402be2b2
mov rax, qword [rdi + 0x338]
mov ecx, r15d
movzx eax, byte [rax + rcx]
jmp 0x1402be2c3
mov rcx, r12
mov edx, r15d
mov r8d, 0xfba5e7fc
call fcn.1402c12f0
mov byte [rsp + 0x3c], al
mov eax, r15d
xor eax, 1
mov ecx, r15d
and ecx, 1
lea edx, [rax + rcx*2]
mov eax, dword [rdi + 0x334]
mov ecx, eax
not ecx
xor eax, 2
and ecx, 0xfffffffd
or ecx, eax
cmp ecx, 0xffffffff
je 0x1402be2fd
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.1402c12f0
jmp 0x1402be30a
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov byte [rsp + 0x3d], al
mov eax, r15d
xor eax, 2
mov ecx, r15d
and ecx, 2
lea edx, [rax + rcx*2]
mov eax, dword [rdi + 0x334]
mov ecx, eax
not ecx
xor eax, 2
and ecx, 0xfffffffd
or ecx, eax
cmp ecx, 0xffffffff
je 0x1402be344
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.1402c12f0
jmp 0x1402be351
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov r14, qword [rsp + 0xb0]
mov byte [rsp + 0x3e], al
lea edx, [r15 + 3]
mov eax, dword [rdi + 0x334]
mov rcx, qword [0x1404c7a30]
movsxd rsi, dword [rcx]
add rsi, rcx
jmp 0x1402be386
mov ecx, dword [0x1403e03d0]
mov ecx, dword [0x1404f1350]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x1402be380
mov ebx, dword [0x1403e03d0]
mov ecx, dword [0x1404f1354]
cmp ecx, 0xd
jge 0x1402be380
test al, 2
mov qword [rsp + 0x30], r12
jne 0x1402be3c3
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
jmp 0x1402be3d1
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.1402c12f0
mov byte [rsp + 0x3f], al
mov rax, qword [rdi]
mov r12d, dword [0x1404c7a10]
mov ecx, dword [0x1404f1354]
cmp ecx, 0x5b
jge 0x1402be3fb
lea r13d, [r12 + 1]
mov dword [0x1404c7a10], r13d
test rdi, rdi
jne 0x1402be407
mov dword [0x1404c7a10], 0
jmp 0x1402be3ea
xor ebp, ebp
test r12d, r13d
jne 0x1402be445
test ebx, ebx
jle 0x1402be445
xor edx, edx
xor ecx, ecx
nop word cs:[rax + rax]
movsxd rdx, edx
mov r8d, dword [rsi + rdx]
mov ebp, r8d
xor ebp, r8d
not ebp
and ebp, ecx
xor ebp, r8d
mov ecx, edx
xor ecx, 4
and edx, 4
lea edx, [rcx + rdx*2]
mov ecx, ebp
cmp edx, ebx
jl 0x1402be420
mov ecx, dword [0x1404f1354]
cmp ecx, 0x42
jg 0x1402be470
mov ecx, dword [0x1404f1350]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1402be47d
nop word cs:[rax + rax]
mov ecx, dword [0x1404f1354]
cmp ecx, 0x55
jge 0x1402be470
jmp 0x1402be450
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x14014757d.0]
test al, al
je 0x1402be4d0
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], r15d
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], r15d
mov dword [rsp + 0x20], 0xf3d71741
lea rdx, [rsp + 0x3c]
mov r8d, 4
mov r9, rdx
call fcn.140156410
mov eax, dword [rsp + 0x2c]
add eax, dword [rsp + 0x3c]
mov dword [rsp + 0x2c], eax
mov eax, dword [0x1403e03d8]
xor ecx, ecx
mov dl, 1
nop word cs:[rax + rax]
mov r8d, dword [0x1404f1354]
cmp r8d, 0x5f
jg 0x1402be50b
xor r8d, r8d
test r12d, r13d
setne r9b
test cl, cl
je 0x1402be511
test dl, dl
je 0x1402be4f0
jmp 0x1402be4fd
mov r8b, r9b
mov edx, 0xffffffff
add edx, r8d
xor ecx, ecx
sub eax, ebp
and eax, edx
nop word cs:[rax + rax]
test cl, cl
jne 0x1402be548
mov edx, dword [0x1404f1350]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1402be55e
mov edx, dword [0x1404f1350]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1402be530
jmp 0x1402be534
mov ecx, dword [0x1404eec74]
mov edx, ecx
xor edx, eax
and ecx, eax
lea eax, [rdx + rcx*2]
mov dword [0x1404eec74], eax
mov eax, dword [rsp + 0xb8]
mov r15d, eax
test eax, eax
mov ebp, dword [rsp + 0x2c]
mov r12, qword [rsp + 0x30]
jle 0x1402be5c6
mov esi, ebp
xor ebx, ebx
jmp 0x1402be5a9
mov rax, qword [rdi + 0x338]
mov ecx, edx
movzx eax, byte [rax + rcx]
mov byte [r14 + rbx], al
inc rbx
cmp r15, rbx
je 0x1402be5c6
lea rdx, [rsi + rbx]
test byte [rdi + 0x334], 2
je 0x1402be590
mov rcx, r12
mov r8d, 0xfba5e7fc
call fcn.1402c12f0
jmp 0x1402be59d
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
call qword [case.0x14014757d.0]
test al, al
je 0x1402be615
mov eax, dword [rdi + 0xa0]
lea rcx, [rdi + 0x1e4]
mov dword [rdi + 0x234], eax
mov dword [rdi + 0x238], ebp
mov dword [rdi + 0x23c], eax
mov dword [rdi + 0x240], ebp
mov dword [rsp + 0x20], 0xf3d71741
mov rdx, r14
mov r8, r15
mov r9, r14
call fcn.140156410
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1403763e0
nop
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret