Function at 0x1400543f6
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov r14, qword [rdx]
lea rcx, [rdx + 8]
call fcn.1400551ff
test rax, rax
jne 0x140054799
xor bl, 1
test r14, r14
movzx ecx, bl
mov eax, 2
cmove eax, ecx
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x30], rcx
test al, al
je 0x140054488
movzx eax, al
cmp eax, 2
jne 0x14005445c
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x28], 0
jmp 0x1400544c7
mov rax, qword [rdi + 0x10]
xor ecx, ecx
cmp qword [rsp + 0x30], rcx
je 0x14005447c
movzx edx, byte [rax + rcx]
cmp edx, 0x20
je 0x140054488
inc rcx
cmp edx, 9
jne 0x140054462
jmp 0x140054488
cmp qword [rsp + 0x30], 0
jne 0x1400547ad
mov rbx, qword [rsi + 0x10]
cmp rbx, qword [rsi]
jne 0x140054499
mov rcx, rsi
call fcn.140058967
mov rax, qword [rsi + 8]
mov word [rax + rbx*2], 0x22
movabs rax, 0x29cdb11681783294
lea rcx, [rax + 1]
xor rcx, rax
add rcx, rbx
mov qword [rsi + 0x10], rcx
mov al, 1
mov dword [rsp + 0x2c], eax
mov al, 1
mov dword [rsp + 0x28], eax
movabs r13, 0xead8ab48e978f9a8
movabs r12, 0x50168d6c8a1ab3b4
mov r15, qword [rdi + 0x10]
add qword [rsp + 0x30], r15
xor ebx, ebx
xor edi, edi
test bx, bx
jne 0x140054568
cmp r15, qword [rsp + 0x30]
je 0x1400546ba
movzx ebx, byte [r15]
test bl, bl
js 0x140054505
inc r15
jmp 0x140054568
mov eax, ebx
and eax, 0x1f
movzx edx, byte [r15 + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x140054544
movzx ecx, byte [r15 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x140054551
movzx ebx, byte [r15 + 3]
add r15, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
or ebx, eax
jmp 0x14005455c
add r15, 2
shl eax, 6
or eax, edx
mov ebx, eax
jmp 0x140054568
add r15, 3
shl eax, 0xc
or ecx, eax
mov ebx, ecx
cmp ebx, 0xffff
ja 0x140054697
xor ebp, ebp
cmp byte [rsp + 0x2c], 0
je 0x14005465e
cmp bx, 0x22
je 0x1400545a0
movzx eax, bx
cmp eax, 0x5c
jne 0x14005465c
movabs rcx, 0xc171b54a0fce4ee8
lea rax, [rcx + 1]
xor rax, rcx
add rdi, rax
jmp 0x14005465e
cmp rdi, 0xffffffffffffffff
je 0x1400547bb
mov rax, qword [rsi]
mov rdx, qword [rsi + 0x10]
sub rax, rdx
cmp rax, rdi
ja 0x140054613
movabs rax, 0x6a621fe45d1f22e8
lea r8, [rax + 1]
xor r8, rax
add r8, rdi
movabs rax, 0x6fa9ac4c6c449f8c
lea r9, [rax + 2]
xor r9, rax
movabs rcx, 0x6c127860c550dbad
lea rax, [rcx + 2]
xor rax, rcx
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.1400211d6
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x1400547b8
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
test rdi, rdi
je 0x14005463e
xor ecx, ecx
lea r8, [r13 + 1]
xor r8, r13
add rcx, r8
mov word [rax + rdx*2], 0x5c
lea r8, [r12 + 1]
xor r8, r12
add rdx, r8
cmp rcx, rdi
jne 0x14005461e
mov word [rax + rdx*2], 0x5c
movabs rcx, 0xf261e2b97fc95474
lea rax, [rcx + 1]
xor rax, rcx
add rax, rdx
mov qword [rsi + 0x10], rax
xor edi, edi
mov r14, qword [rsi + 0x10]
cmp r14, qword [rsi]
jne 0x14005466f
mov rcx, rsi
call fcn.140058967
mov rax, qword [rsi + 8]
mov word [rax + r14*2], bx
movabs rcx, 0x7c3bc7ec4af5c31c
lea rax, [rcx + 1]
xor rax, rcx
add rax, r14
mov qword [rsi + 0x10], rax
mov ebx, ebp
jmp 0x1400544e8
lea eax, [rbx + 0xff0000]
shr eax, 0xa
or eax, 0xd800
and ebx, 0x3ff
or ebx, 0xdc00
mov ebp, ebx
mov ebx, eax
jmp 0x14005456a
cmp byte [rsp + 0x28], 0
je 0x140054797
mov rax, qword [rsi]
mov rbx, qword [rsi + 0x10]
sub rax, rbx
cmp rax, rdi
jae 0x140054726
movabs rax, 0xaff3122a1e199730
lea r9, [rax + 2]
xor r9, rax
movabs rax, 0x92423cde1c9a33d1
lea rcx, [rax + 2]
xor rcx, rax
mov qword [rsp + 0x20], rcx
mov rcx, rsi
mov rdx, rbx
mov r8, rdi
call fcn.1400211d6
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x1400547b8
mov rax, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
jmp 0x14005472f
mov rax, qword [rsi + 8]
test rdi, rdi
je 0x140054764
movabs r9, 0x45e55f5713c02a08
movabs r8, 0x290e45069ff4a522
xor ecx, ecx
lea rdx, [r8 + 1]
xor rdx, r8
lea r8, [r9 + 1]
xor r8, r9
add rcx, rdx
mov word [rax + rbx*2], 0x5c
add rbx, r8
cmp rcx, rdi
jne 0x140054753
mov qword [rsi + 0x10], rbx
cmp rbx, qword [rsi]
jne 0x140054779
mov rcx, rsi
call fcn.140058967
mov rax, qword [rsi + 8]
mov word [rax + rbx*2], 0x22
movabs rax, 0x91b3a4798941625a
lea rcx, [rax + 1]
xor rcx, rax
add rcx, rbx
mov qword [rsi + 0x10], rcx
xor edx, edx
mov rax, rdx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 1
mov dword [rsp + 0x2c], eax
jmp 0x140054452
test rax, rax
ud2