Function at 0x1400d9a40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1a8
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x1402de400]
xor rax, rsp
mov qword [rbp + 0x148], rax
mov rax, qword [rsp + 0x210]
mov rsi, qword [rsp + 0x220]
xor r12d, r12d
mov qword [rbp + 8], rax
mov rax, qword [rsp + 0x218]
mov rdi, r9
mov qword [rbp + 0x10], rax
xor eax, eax
mov qword [rbp + 0x28], r9
mov qword [rbp + 0x121], rax
mov qword [rbp + 0x129], rax
mov qword [rbp + 0x131], rax
mov qword [rbp + 0x139], rax
lea rax, [r9 + 1]
mov rbx, r8
mov r13, rdx
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x18], rcx
mov dword [rbp], r12d
mov byte [rbp + 0x120], r12b
mov r14, r12
mov r15, r12
mov qword [rbp + 0xa0], rax
test rax, rax
je 0x1400da187
cmp rax, 0xfffffff
ja 0x1400da187
lea r8d, [r12 + 0x60]
lea rcx, [rbp + 0x40]
xor edx, edx
call fcn.1401e42d0
mov eax, dword [rsi + 0x34]
test eax, eax
jne 0x1400d9b27
cmp dword [rsi + 0x38], r12d
jne 0x1400d9b27
mov edx, dword [rsi + 0x30]
lea rcx, [rsi + 0x20]
call fcn.1400d7df0
test eax, eax
jne 0x1400d9b2c
inc dword [rsi + 0x34]
jmp 0x1400d9b2c
inc eax
mov dword [rsi + 0x34], eax
test rbx, rbx
je 0x1400d9f99
mov r13, qword [rbp + 0x18]
mov r13, qword [r13]
test r13, r13
je 0x1400da160
mov rcx, r13
call fcn.1400d9340
test eax, eax
je 0x1400d9f28
mov rcx, rbx
call fcn.1400d6950
cmp eax, 0x100
jg 0x1400d9b6f
cmp dword [rbx + 0x10], r12d
je 0x1400d9c00
mov rcx, rsi
call fcn.1400d7d70
mov rdi, rax
test rax, rax
je 0x1400da160
mov rax, qword [rbp + 0x18]
mov r13, qword [rax + 8]
movsxd rax, dword [r13 + 8]
test eax, eax
je 0x1400da160
mov rcx, rax
mov rax, qword [r13]
cmp qword [rax + rcx*8 - 8], r12
je 0x1400da160
mov r9, r13
mov r8, rbx
mov rdx, rdi
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call fcn.1400ddd00
test eax, eax
je 0x1400da160
mov rcx, rdi
call fcn.1400d7360
cmp dword [rdi + 0x10], r12d
je 0x1400d9bfd
cmp dword [r13 + 0x10], r12d
lea rcx, [fcn.1400d8120]
lea rax, [fcn.1400d8020]
cmovne rax, rcx
mov r8, r13
mov rdx, rdi
mov rcx, rdi
call rax
test eax, eax
je 0x1400da160
mov rbx, rdi
mov r9d, dword [rbx + 8]
mov r8d, r12d
shl r9d, 3
test r9d, r9d
jle 0x1400d9c77
mov r10, qword [rbx]
lea rdx, [rbp + 0x121]
nop word [rax + rax]
mov eax, r8d
add r8d, 8
add rdx, 8
shr eax, 3
mov rcx, qword [r10 + rax*8]
mov rax, rcx
mov byte [rdx - 9], cl
shr rax, 8
mov byte [rdx - 8], al
mov rax, rcx
shr rcx, 0x18
shr rax, 0x10
mov byte [rdx - 6], cl
shr rcx, 8
mov byte [rdx - 7], al
mov rax, rcx
mov byte [rdx - 5], cl
shr rax, 8
mov byte [rdx - 4], al
mov rax, rcx
shr rcx, 0x18
shr rax, 0x10
cmp r8d, r9d
mov byte [rdx - 2], cl
mov byte [rdx - 3], al
jl 0x1400d9c20
movsxd rax, r8d
cmp rax, 0x21
jge 0x1400d9c98
mov r8d, 0x21
lea rcx, [rbp + rax + 0x120]
xor edx, edx
sub r8, rax
call fcn.1401e42d0
movzx edx, byte [rbp + 0x120]
mov ecx, 0xff
and edx, 0x7f
add edx, edx
sub ecx, edx
mov r8d, edx
shr r8d, 7
dec r8d
not r8d
and ecx, r8d
mov eax, r8d
and r8d, 1
not eax
and eax, edx
lea rdx, [0x140202000]
or ecx, eax
mov eax, ecx
and ecx, 1
shr eax, 1
add eax, ecx
lea rcx, [rbp + 0x40]
lea ebx, [r8 + rax*2]
mov r8d, ebx
shr r8d, 1
call fcn.140229020
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x80]
call fcn.1402274c0
mov r11d, ebx
mov r13d, 6
and r11d, 1
lea rdi, [0x140203000]
neg r11
mov r8, r11
mov r9, r11
mov rdx, r11
and rdx, qword [rbp + 0x88]
and r9, qword [rbp + 0x80]
mov rcx, r11
and r11, qword [rbp + 0x98]
and rcx, qword [rbp + 0x90]
not r8
mov rax, r8
and rax, qword [rbp + 0x60]
xor r9, rax
mov rax, r8
and rax, qword [rbp + 0x68]
mov qword [rbp + 0x60], r9
xor rdx, rax
mov rax, r8
and r8, qword [rbp + 0x78]
and rax, qword [rbp + 0x70]
xor r11, r8
mov qword [rbp + 0x68], rdx
xor rcx, rax
mov qword [rbp + 0x78], r11
or r11, rcx
mov qword [rbp + 0x70], rcx
or r11, rdx
movabs rdx, 0xffffffff00000000
or r11, r9
or r11, qword [rbp + 0x58]
or r11, qword [rbp + 0x50]
or r11, qword [rbp + 0x48]
or r11, qword [rbp + 0x40]
mov rcx, r11
neg rcx
or rcx, r11
not rcx
shr rcx, 0x3f
dec rcx
mov rax, rcx
mov qword [rbp + 0x90], rcx
and eax, 1
mov qword [rbp + 0x80], rax
mov rax, rcx
and rax, rdx
mov qword [rbp + 0x88], rax
mov eax, 0xfffffffe
and rcx, rax
mov qword [rbp + 0x98], rcx
lea r15d, [r13 + 0x1e]
nop dword [rax]
mov edx, r13d
shr edx, 3
movzx ecx, byte [rbp + rdx + 0x120]
lea eax, [rdx + 1]
mov edx, 0xff
movzx r8d, byte [rbp + rax + 0x120]
shl r8d, 8
or r8d, ecx
mov ecx, r13d
add r13d, 7
and ecx, 7
shr r8d, cl
movzx ecx, r8b
sub edx, ecx
mov r8d, ecx
shr r8d, 7
dec r8d
not r8d
and edx, r8d
mov eax, r8d
and r8d, 1
not eax
and eax, ecx
lea rcx, [rbp + 0xc0]
or edx, eax
mov eax, edx
and edx, 1
shr eax, 1
add eax, edx
mov rdx, rdi
lea ebx, [r8 + rax*2]
mov r8d, ebx
shr r8d, 1
call fcn.140229020
lea rdx, [rbp + 0xe0]
lea rcx, [rbp + 0x100]
call fcn.1402274c0
mov rcx, qword [rbp + 0xe0]
mov rax, qword [rbp + 0x100]
mov r11d, ebx
lea r8, [rbp + 0xc0]
and r11d, 1
neg r11
and rax, r11
mov rdx, r11
not rdx
and rcx, rdx
xor rcx, rax
mov rax, qword [rbp + 0x108]
mov qword [rbp + 0xe0], rcx
mov rcx, qword [rbp + 0xe8]
and rax, r11
and rcx, rdx
xor rcx, rax
mov rax, qword [rbp + 0x110]
mov qword [rbp + 0xe8], rcx
mov rcx, qword [rbp + 0xf0]
and rax, r11
and rcx, rdx
xor rcx, rax
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0xf0], rcx
mov rcx, qword [rbp + 0xf8]
and rax, r11
and rcx, rdx
lea rdx, [rbp + 0x40]
xor rcx, rax
mov qword [rbp + 0xf8], rcx
lea rcx, [rbp + 0x40]
call fcn.14022a040
add rdi, 0x1000
sub r15, 1
jne 0x1400d9de0
mov rdi, qword [rbp + 0x28]
mov r13, qword [rbp + 0x20]
mov r15, r12
mov eax, r12d
jmp 0x1400d9fa1
shl rdi, 3
mov dword [rbp], 1
lea rcx, [rdi + 8]
call fcn.1401e3610
mov r14, rax
test rax, rax
je 0x1400da160
lea rcx, [rdi + 8]
call fcn.1401e3610
mov r15, rax
test rax, rax
je 0x1400da160
mov rdx, qword [rbp + 0x10]
mov r8, rdi
mov rcx, r14
call fcn.1401e3ed0
mov rdx, qword [rbp + 8]
mov r8, rdi
mov rcx, r15
mov qword [rdi + r14], rbx
call fcn.1401e3ed0
mov eax, dword [rbp]
mov qword [rdi + r15], r13
mov rdi, qword [rbp + 0xa0]
mov r13, qword [rbp + 0x20]
mov rdx, r14
mov rcx, r15
jmp 0x1400d9fa9
mov eax, 1
mov dword [rbp], eax
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 8]
test rdi, rdi
je 0x1400d9ffa
lea r8, [rbp + 0xc0]
test eax, eax
mov r9, rcx
mov rcx, qword [rbp + 0x18]
lea rbx, [rbp + 0x40]
mov qword [rsp + 0x28], rsi
cmove rbx, r8
mov r8, rdx
mov qword [rsp + 0x20], rdi
mov rdx, rbx
call fcn.1400d8940
test eax, eax
je 0x1400da160
mov eax, dword [rbp]
test eax, eax
jne 0x1400d9ffa
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x40]
mov r8, rbx
call fcn.1402298e0
mov rdi, qword [r13]
mov ebx, 4
cmp dword [rdi + 0xc], ebx
jl 0x1400da00d
mov rax, rdi
jmp 0x1400da017
mov edx, ebx
mov rcx, rdi
call fcn.1400d6b60
test rax, rax
je 0x1400da160
mov rcx, qword [rdi]
lea rdx, [rbp + 0x40]
mov rax, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rcx, qword [rdi]
mov dword [rdi + 8], ebx
add rcx, 0x20
mov eax, ebx
sub rcx, 8
cmp qword [rcx], r12
jne 0x1400da060
dec eax
test eax, eax
jg 0x1400da051
mov dword [rdi + 8], eax
test eax, eax
jne 0x1400da06b
mov dword [rdi + 0x10], r12d
mov rdi, qword [r13 + 8]
cmp dword [rdi + 0xc], ebx
jl 0x1400da079
mov rax, rdi
jmp 0x1400da083
mov edx, ebx
mov rcx, rdi
call fcn.1400d6b60
test rax, rax
je 0x1400da160
mov rcx, qword [rdi]
lea rdx, [rbp + 0x60]
mov rax, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rcx, qword [rdi]
mov dword [rdi + 8], ebx
add rcx, 0x20
mov eax, ebx
nop dword [rax]
sub rcx, 8
cmp qword [rcx], r12
jne 0x1400da0cf
dec eax
test eax, eax
jg 0x1400da0c0
mov dword [rdi + 8], eax
test eax, eax
jne 0x1400da0da
mov dword [rdi + 0x10], r12d
mov rdi, qword [r13 + 0x10]
cmp dword [rdi + 0xc], ebx
jl 0x1400da0e8
mov rax, rdi
jmp 0x1400da0f2
mov edx, ebx
mov rcx, rdi
call fcn.1400d6b60
test rax, rax
je 0x1400da160
mov rcx, qword [rdi]
lea rdx, [rbp + 0x80]
mov rax, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rdi]
mov dword [rdi + 8], ebx
add rax, 0x20
nop dword [rax]
sub rax, 8
cmp qword [rax], r12
jne 0x1400da13f
dec ebx
test ebx, ebx
jg 0x1400da130
mov dword [rdi + 8], ebx
test ebx, ebx
jne 0x1400da14a
mov dword [rdi + 0x10], r12d
mov rcx, qword [r13 + 0x10]
call fcn.1400d88e0
mov r12d, 1
and eax, 1
mov dword [r13 + 0x18], eax
mov rcx, rsi
call fcn.1400d7cf0
test r15, r15
je 0x1400da175
mov rcx, r15
call fcn.1401e36c8
test r14, r14
je 0x1400da182
mov rcx, r14
call fcn.1401e36c8
mov eax, r12d
jmp 0x1400da189
xor eax, eax
mov rcx, qword [rbp + 0x148]
xor rcx, rsp
call fcn.1401e42a0
add rsp, 0x1a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret