Function at 0x1400aa570
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 dword [rsp + 0x28], r9d
mov edi, dword [rsp + 0xb0]
test ecx, ecx
je 0x1400aa5e4
test edx, edx
je 0x1400aa65d
movzx eax, byte [0x1405fe52b]
cmp al, 0xc7
je 0x1400aa89e
mov ebx, dword [rsp + 0x28]
xor ebx, 0x806c0750
mov ebp, edi
xor ebp, 0xa97ed1e7
lea r14, [rsp + 0x30]
nop
mov rcx, r14
mov edx, ebx
mov r8d, ebp
call fcn.1400ab560
cmp byte [rsp + 0x31], 0
jne 0x1400aa736
cmp byte [rsp + 0x30], 0xc7
jne 0x1400aa5c0
jmp 0x1400aa89e
test edx, edx
je 0x1400aa6c8
movzx eax, byte [0x1405fe5bf]
mov ecx, edi
xor cl, 0x1d
add cl, byte [0x1405ff118]
cmp al, cl
je 0x1400aa910
mov cl, 0x8c
nop dword [rax + rax]
mov al, 0xd5
lock cmpxchg byte [0x1405fe5bf], cl
je 0x1400aa8aa
movzx edx, byte [0x1405ff118]
mov r8d, edi
not r8b
mov r9d, edi
xor r9b, 0xe2
and r8b, 0x1d
or r9b, r8b
not r9b
or r9b, r8b
xor r9b, dl
mov r8d, r9d
not r8b
and r8b, dl
add r8b, r8b
add r8b, r9b
cmp al, r8b
jne 0x1400aa610
jmp 0x1400aa910
movzx eax, byte [0x1405fe57d]
cmp al, 0xfb
je 0x1400aa95b
mov ebx, dword [rsp + 0x28]
xor ebx, 0xf63ac5e7
mov r12d, edi
not r12d
mov eax, r12d
and eax, 0x70f6335b
mov ebp, edi
and ebp, 0x8f09cca4
or ebp, eax
and ebp, edi
or ebp, eax
lea r14, [rsp + 0x30]
lea r15, [rsp + 0x2f]
nop dword [rax]
mov rcx, r14
mov rdx, r15
mov r8d, ebx
mov r9d, ebp
call fcn.1400aab90
cmp byte [rsp + 0x31], 0
jne 0x1400aa8d8
cmp byte [rsp + 0x2f], 0xfb
jne 0x1400aa6a0
jmp 0x1400aa95b
movzx eax, byte [0x1405fe4d2]
cmp al, 0x8e
je 0x1400aaa7b
mov sil, 0x84
mov ebx, dword [rsp + 0x28]
xor ebx, 0xfe2f74a1
mov r14d, edi
not r14d
mov eax, edi
xor eax, 0xe42b4d90
and eax, edi
mov ecx, edi
xor ecx, 0x1bd4b26f
or eax, ecx
not eax
mov ebp, r14d
and ebp, 0xe42b4d90
or ebp, ecx
not ebp
or ebp, eax
nop
mov al, 0xb6
lock cmpxchg byte [0x1405fe4d2], sil
je 0x1400aa967
mov ecx, eax
mov edx, ebx
mov r8d, ebp
call fcn.1400ab580
test al, 1
je 0x1400aa710
jmp 0x1400aaa7b
xor ebx, ebx
mov r12d, dword [rsp + 0x28]
mov r9d, r12d
not r9d
mov eax, r12d
or eax, 0x356a8c27
mov ecx, eax
not ecx
mov edx, r9d
and edx, 0x356a8c27
mov r8d, r12d
and r8d, 0xca9573d8
or r8d, edx
and r9d, 0xca9573d8
or r9d, r8d
mov edx, r9d
not edx
and r9d, ecx
and ecx, edx
and edx, eax
or r9d, edx
or r9d, ecx
mov dword [rsp + 0x40], r9d
mov r13d, edi
not r13d
mov eax, edi
xor eax, 0x4cc39ebb
and eax, r13d
mov r14d, edi
and r14d, 0xb33c6144
or r14d, eax
xor r12d, 0xcac2f40e
mov eax, r13d
and eax, 0x5a1c9cdc
mov esi, edi
and esi, 0xa5e36323
or esi, eax
nop dword [rax]
mov ecx, ebx
lea rdi, [rsp + 0x30]
mov rdx, rdi
mov r8d, dword [rsp + 0x40]
mov r9d, r14d
call fcn.1400a9970
mov rax, qword [rsp + 0x30]
lea rbp, [0x1405fe520]
movzx r15d, byte [rax + rbp]
mov r9d, dword [0x1405ff11c]
add r9d, esi
xor r9d, r13d
not r9d
mov eax, dword [rsp + 0xb0]
and eax, r9d
and r9d, r13d
or r9d, eax
mov ecx, ebx
mov rdx, rdi
mov r8d, r12d
call fcn.1400a9970
mov rax, qword [rsp + 0x30]
lea rcx, [0x14052ebb0]
movzx eax, byte [rax + rcx]
mov ecx, eax
xor cl, al
not cl
and cl, r15b
xor cl, al
mov byte [rbx + rbp], cl
lea eax, [rbx + 1]
cmp eax, 0xa
jg 0x1400aa840
inc rbx
jmp 0x1400aa7c0
mov edx, dword [rsp + 0xb0]
mov eax, edx
xor eax, 0xa6f7719c
add eax, 0x9f8878fc
xor ecx, ecx
sub ecx, dword [0x1405ff11c]
mov r8d, eax
xor r8d, ecx
and ecx, eax
lea eax, [r8 + rcx*2]
mov r9d, 0x9f8878fb
sub r9d, eax
mov eax, r9d
not eax
mov r8d, r9d
mov r10d, dword [rsp + 0x28]
xor r8d, r10d
and r8d, r9d
mov ecx, eax
xor ecx, r9d
and ecx, r10d
xor ecx, r9d
and ecx, eax
or ecx, r8d
xor edx, 0x4c598388
call fcn.1400aaac0
lea rax, [0x1405fe520]
jmp 0x1400aaa82
xor eax, eax
lea rcx, [0x1405fe5b0]
lea rdx, [0x14052ec40]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x1400aa908
inc rax
jmp 0x1400aa8c0
xor eax, eax
lea rcx, [0x1405fe570]
lea rdx, [0x14052ec00]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1400aa91c
inc rax
jmp 0x1400aa8f0
mov al, 0xc1
xchg byte [0x1405fe5bf], al
lea rax, [0x1405fe5b0]
jmp 0x1400aaa82
mov ecx, dword [rsp + 0x28]
mov eax, ecx
not eax
mov edx, eax
and edx, 0xdba4a63b
and ecx, 0x245b59c4
or ecx, edx
and eax, 0x245b59c4
or ecx, eax
not ecx
or ecx, eax
xor edi, 0x843d030c
and r12d, 0x7bc2fcf3
or edi, r12d
not edi
or edi, r12d
mov edx, edi
call fcn.1400abd90
lea rax, [0x1405fe570]
jmp 0x1400aaa82
xor ebp, ebp
mov eax, edi
xor eax, 0xe0d56330
mov dword [rsp + 0x40], eax
mov ebx, edi
xor ebx, 0x3f4a52be
mov eax, r14d
and eax, 0xc0b5ad41
or ebx, eax
not ebx
or ebx, eax
mov r8d, dword [rsp + 0x28]
mov r9d, r14d
mov ecx, r8d
not ecx
mov eax, r8d
xor eax, 0xe42f2a0e
mov dword [rsp + 0x44], ecx
and eax, ecx
mov r15d, r8d
and r15d, 0x1bd0d5f1
or r15d, eax
mov eax, r14d
and eax, 0xa85f9e44
mov r12d, edi
xor r12d, 0x57a061bb
or r12d, eax
not r12d
or r12d, eax
mov eax, edi
xor eax, 0x52c804
mov ecx, edi
xor ecx, 0x7e8d155b
and eax, 0x18d6d80f
add eax, eax
mov edx, ecx
xor edx, eax
and eax, ecx
lea esi, [rdx + rax*2]
and r9d, 0xef7c23a
mov r13d, edi
xor r13d, 0xef7c23a
and r13d, edi
mov edi, r8d
or r13d, r9d
nop word cs:[rax + rax]
mov r8d, dword [0x1405ff11c]
add r8d, dword [rsp + 0x40]
xor r8d, edi
mov ecx, ebp
lea r14, [rsp + 0x30]
mov rdx, r14
mov r9d, ebx
call fcn.1400a9970
mov rcx, qword [rsp + 0x30]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
call fcn.1400aaad0
mov eax, dword [0x1405ff11c]
add eax, esi
add eax, 0xe72927f1
mov r8d, dword [rsp + 0x44]
xor r8d, edi
and r8d, eax
xor r8d, edi
mov ecx, ebp
mov rdx, r14
mov r9d, r13d
call fcn.1400a9940
mov ebp, dword [rsp + 0x30]
test al, 1
je 0x1400aaa10
mov al, 0x8e
xchg byte [0x1405fe4d2], al
lea rax, [0x1405fe4d0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret