Function at 0x1401a8890
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
cmp byte [0x140356744], 0
mov r9, rdx
je 0x1401a88a7
xor eax, eax
add rsp, 8
ret
mov qword [rsp + 0x20], rsi
not ecx
lea rsi, [rdx + r8]
mov qword [rsp], r14
lea r8, [rdx + 3]
and r8, 0xfffffffffffffffc
lea r14, [0x140000000]
cmp r8, rsi
ja 0x1401a88ed
cmp rdx, r8
je 0x1401a88ed
nop
movzx eax, byte [r9]
inc r9
movzx edx, cl
xor rdx, rax
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
cmp r9, r8
jne 0x1401a88d0
mov rax, rsi
sub rax, r9
cmp rax, 0x10
jl 0x1401a8cfc
movzx eax, byte [r9 + 2]
movzx r10d, byte [r9 + 3]
movzx r11d, byte [r9 + 7]
mov qword [rsp + 0x10], rbx
movzx ebx, byte [r9 + 0xb]
shl r10d, 8
or r10d, eax
shl r11d, 8
movzx eax, byte [r9 + 1]
shl ebx, 8
shl r10d, 8
or r10d, eax
mov qword [rsp + 0x18], rbp
movzx eax, byte [r9]
mov rbp, rsi
shl r10d, 8
or r10d, eax
mov qword [rsp + 0x28], rdi
movzx eax, byte [r9 + 6]
xor r10d, ecx
movzx ecx, byte [r9 + 0xf]
or r11d, eax
movzx eax, byte [r9 + 5]
shl ecx, 8
shl r11d, 8
or r11d, eax
movzx eax, byte [r9 + 4]
shl r11d, 8
or r11d, eax
movzx eax, byte [r9 + 0xa]
or ebx, eax
movzx eax, byte [r9 + 9]
shl ebx, 8
or ebx, eax
movzx eax, byte [r9 + 8]
shl ebx, 8
or ebx, eax
movzx eax, byte [r9 + 0xe]
or ecx, eax
movzx eax, byte [r9 + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xc]
shl ecx, 8
add r9, 0x10
or ecx, eax
sub rbp, r9
cmp rbp, 0x10
jl 0x1401a8b67
lea rdi, [r9 + 6]
nop
movzx eax, byte [rdi - 4]
mov r8d, r10d
movzx r10d, byte [rdi - 3]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 5]
shl r10d, 8
or r10d, eax
movzx eax, byte [r9]
shl r10d, 8
or r10d, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor r10d, dword [r14 + rdx*4 + 0x2aad20]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor r10d, dword [r14 + rdx*4 + 0x2ab120]
xor r10d, dword [r14 + rax*4 + 0x2aa920]
movzx eax, r8b
mov r8d, r11d
movzx r11d, byte [rdi + 1]
shl r11d, 8
xor r10d, dword [r14 + rax*4 + 0x2ab520]
movzx eax, byte [rdi]
or r11d, eax
movzx eax, byte [rdi - 1]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 2]
shl r11d, 8
or r11d, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor r11d, dword [r14 + rdx*4 + 0x2aad20]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor r11d, dword [r14 + rdx*4 + 0x2ab120]
xor r11d, dword [r14 + rax*4 + 0x2aa920]
movzx eax, r8b
mov r8d, ebx
movzx ebx, byte [rdi + 5]
shl ebx, 8
xor r11d, dword [r14 + rax*4 + 0x2ab520]
movzx eax, byte [rdi + 4]
or ebx, eax
movzx eax, byte [rdi + 3]
shl ebx, 8
or ebx, eax
movzx eax, byte [rdi + 2]
shl ebx, 8
or ebx, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ebx, dword [r14 + rdx*4 + 0x2aad20]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ebx, dword [r14 + rdx*4 + 0x2ab120]
xor ebx, dword [r14 + rax*4 + 0x2aa920]
movzx eax, r8b
mov r8d, ecx
movzx ecx, byte [rdi + 9]
shl ecx, 8
xor ebx, dword [r14 + rax*4 + 0x2ab520]
movzx eax, byte [rdi + 8]
or ecx, eax
movzx eax, byte [rdi + 7]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdi + 6]
lea rdi, [rdi + 0x10]
or ecx, eax
add r9, 0x10
mov eax, r8d
sub rbp, 0x10
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ecx, dword [r14 + rdx*4 + 0x2aad20]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ecx, dword [r14 + rdx*4 + 0x2ab120]
xor ecx, dword [r14 + rax*4 + 0x2aa920]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0x2ab520]
cmp rbp, 0x10
jge 0x1401a89c0
mov rbp, qword [rsp + 0x18]
mov rdi, rsi
sub rdi, r9
cmp rdi, 4
jl 0x1401a8bfa
nop dword [rax]
movzx eax, byte [r9 + 2]
sub rdi, 4
mov r8d, r10d
mov r10d, r11d
mov r11d, ebx
mov ebx, ecx
movzx ecx, byte [r9 + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9]
shl ecx, 8
add r9, 4
or ecx, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ecx, dword [r14 + rdx*4 + 0x2aad20]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ecx, dword [r14 + rdx*4 + 0x2ab120]
xor ecx, dword [r14 + rax*4 + 0x2aa920]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0x2ab520]
cmp rdi, 4
jge 0x1401a8b80
mov rdi, qword [rsp + 0x28]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0x2aa520]
xor r11d, r10d
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0x2aa520]
xor ebx, r11d
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0x2aa520]
xor ecx, ebx
mov rbx, qword [rsp + 0x10]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
cmp r9, rsi
je 0x1401a8d2d
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r9]
inc r9
movzx edx, cl
xor rdx, rax
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0x2aa520]
cmp r9, rsi
jne 0x1401a8d10
mov r14, qword [rsp]
not ecx
mov rsi, qword [rsp + 0x20]
mov eax, ecx
add rsp, 8
ret