Function at 0x1400d9b18
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xa0
mov eax, dword [rsp + 0x108]
mov r10d, ecx
xor esi, esi
mov ecx, eax
mov r14d, eax
movzx eax, ax
shr ecx, 0xf
movsxd r12, r8d
and r14d, 0x1000000
not ecx
add r12, rdx
mov rdi, rdx
and ecx, 8
mov dword [rsp + 0x108], eax
mov qword [rsp + 0xe8], rsi
mov dword [rsp + 0xf0], ecx
cmp eax, esi
jne 0x1400d9bf1
mov rbp, r9
cmp rdx, r12
jae 0x1400d9b98
cmp byte [rdi], 0x7f
ja 0x1400d9b98
movzx eax, byte [rdi]
inc rdi
mov word [rbp], ax
add rbp, 2
cmp rdi, r12
jb 0x1400d9b80
mov rbx, rbp
sub rbx, r9
sar rbx, 1
sub r8d, ebx
cmp r8d, esi
jle 0x1400d9be6
mov eax, dword [rsp + 0x100]
mov r9d, r8d
mov edx, ecx
mov dword [rsp + 0x28], eax
mov r8, rdi
mov ecx, r10d
mov qword [rsp + 0x20], rbp
call qword [0x14012c970]
cmp eax, esi
jg 0x1400d9bdc
cmp r14d, esi
je 0x1400d9bda
xor eax, eax
jmp 0x1400d9ec8
mov eax, esi
cdqe
add rbx, rax
lea rbp, [rbp + rax*2]
mov word [rbp], si
mov eax, ebx
jmp 0x1400d9ec8
xor edx, edx
mov r15b, al
lea rcx, [rsp + 0x80]
lea r8d, [rdx + 0x20]
xor r15b, 0xa
mov qword [rsp + 0x78], rsi
call fcn.1400f3900
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x48]
mov r9d, 0x28
call fcn.14005fde4
mov ebp, 1
jmp 0x1400d9c8e
mov rcx, rdi
jmp 0x1400d9c40
mov al, byte [rdi]
inc rdi
cmp r15b, al
je 0x1400d9c45
cmp rdi, r12
jb 0x1400d9c36
mov qword [rsp + 0x80], rcx
mov rbx, rdi
lea r9, [rsp + 0x78]
sub rbx, rcx
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x28], 0x400
mov dword [rsp + 0x20], 0x28
mov qword [rsp + 0x88], rbx
call fcn.14005fd68
movsxd r11, ebp
cmp r11, rbx
cmovl ebp, ebx
cmp rdi, r12
jb 0x1400d9c31
movsxd rdx, dword [rsp + 0x100]
lea rcx, [rsp + 0x40]
call fcn.14005fa8c
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0x30]
movsxd rdx, ebp
call fcn.14005f7a0
mov rax, qword [rsp + 0x30]
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
movsxd rcx, r14d
cmp eax, esi
mov ebx, esi
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x70], rax
movsxd rbp, eax
jle 0x1400d9e58
mov r15d, dword [rsp + 0xf0]
call fcn.14005a48c
xor edx, edx
div rbp
movsxd rcx, edx
cmp rcx, rbp
jge 0x1400d9e4e
lea rax, [rcx + rcx*4]
lea r8, [r12 + rax*8]
cmp qword [r8], rsi
je 0x1400d9d23
inc rcx
inc edx
add r8, 0x28
cmp rcx, rbp
jl 0x1400d9d0b
jmp 0x1400d9e4e
mov rcx, qword [rsp + 0x38]
movsxd rax, edx
inc ebx
lea rax, [rax + rax*4]
mov dword [rsp + 0xf0], ebx
movsxd r14, dword [r12 + rax*8 + 0x10]
mov rdx, qword [r12 + rax*8 + 8]
mov qword [rsp + 0x68], rax
mov r8, r14
mov qword [r12 + rax*8], 1
call fcn.14001c8fc
mov rdx, qword [rsp + 0x38]
lea r11, [r14 + rdx]
mov rax, rdx
cmp rdx, r11
jae 0x1400d9d79
mov ecx, dword [rsp + 0x108]
xor byte [rax], cl
inc rax
cmp rax, r11
jb 0x1400d9d6f
mov r8, rdi
mov rcx, rdx
mov r9, rsi
cmp rdx, r11
jae 0x1400d9d9f
cmp byte [rcx], 0x7f
ja 0x1400d9d9f
movzx eax, byte [rcx]
inc rcx
mov word [r8], ax
add r8, 2
cmp rcx, r11
jb 0x1400d9d87
mov rbx, r8
sub rbx, rdi
sar rbx, 1
sub r14d, ebx
cmp r14d, esi
jle 0x1400d9e13
mov r10d, dword [rsp + 0xe0]
cmp r10d, 0xfde9
jne 0x1400d9dd1
sub r11, rcx
mov rdx, r11
call fcn.1400d93e4
mov r9, rax
jmp 0x1400d9e00
mov eax, dword [rsp + 0x100]
sub r11d, ecx
mov edx, r15d
sub eax, dword [rsp + 0xe8]
mov r9d, r11d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r8
mov r8, rcx
mov ecx, r10d
call qword [0x14012c970]
movsxd r9, eax
cmp r9, rsi
jg 0x1400d9e13
cmp qword [rsp + 0x60], rsi
jne 0x1400d9ea8
mov r9, rsi
mov rax, qword [rsp + 0x68]
add rbx, r9
add qword [rsp + 0xe8], rbx
mov qword [r12 + rax*8 + 0x20], rbx
sub rbx, 1
mov qword [r12 + rax*8 + 0x18], rdi
js 0x1400d9e47
mov eax, dword [rsp + 0x108]
xor word [rdi], ax
add rdi, 2
sub rbx, 1
jns 0x1400d9e3a
mov ebx, dword [rsp + 0xf0]
cmp ebx, dword [rsp + 0x70]
jl 0x1400d9ced
cmp rbp, rsi
mov rdi, qword [rsp + 0xf8]
jle 0x1400d9e8d
lea rbx, [r12 + 0x20]
mov r8, qword [rbx]
mov rdx, qword [rbx - 8]
mov rcx, rdi
add r8, r8
call fcn.14001c8fc
mov r11, qword [rbx]
add rbx, 0x28
sub rbp, 1
lea rdi, [rdi + r11*2]
jne 0x1400d9e6a
mov eax, dword [rsp + 0x108]
mov word [rdi], ax
mov rcx, qword [rsp + 0x30]
call fcn.1400576cc
mov esi, dword [rsp + 0xe8]
lea rcx, [rsp + 0x30]
call fcn.140057768
lea rcx, [rsp + 0x40]
call fcn.140057768
lea rcx, [rsp + 0x48]
call fcn.140057768
mov eax, esi
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret