Function at 0x1400ae950
Capabilities:
Encode data using xor

Disassembly:
test rcx, rcx
je 0x1400aebc6
mov rax, qword [0x1403eb520]
mov r10, qword [rax + 0x20]
test r10, r10
je 0x1400aebc0
push r12
lea r9, [rcx + 0x48]
mov r8, rcx
mov r11d, 0x9e3779b9
push rbp
push rdi
mov edi, 0x9e3779b9
push rsi
mov rsi, rcx
mov ecx, 0xfeedbeef
push rbx
mov ebx, edx
sub rsp, 0x20
nop dword [rax + rax]
movzx edx, byte [r8 + 5]
movzx eax, byte [r8 + 6]
shl edx, 8
shl eax, 0x10
add edx, eax
movzx eax, byte [r8 + 4]
add edx, eax
movzx eax, byte [r8 + 7]
shl eax, 0x18
add edx, eax
movzx eax, byte [r8 + 9]
add edx, edi
movzx edi, byte [r8 + 0xa]
shl eax, 8
shl edi, 0x10
add eax, edi
movzx edi, byte [r8 + 8]
add eax, edi
movzx edi, byte [r8 + 0xb]
shl edi, 0x18
add eax, edi
movzx edi, byte [r8 + 2]
add eax, ecx
movzx ecx, byte [r8 + 1]
shl edi, 0x10
shl ecx, 8
add ecx, edi
movzx edi, byte [r8]
add ecx, edi
movzx edi, byte [r8 + 3]
shl edi, 0x18
add ecx, edi
sub ecx, edx
sub edx, eax
sub ecx, eax
add ecx, r11d
mov r11d, eax
shr r11d, 0xd
xor ecx, r11d
sub edx, ecx
sub eax, ecx
mov r11d, edx
mov edx, ecx
shl edx, 8
xor edx, r11d
sub eax, edx
mov r11d, eax
mov eax, edx
shr eax, 0xd
xor eax, r11d
sub ecx, edx
add r8, 0xc
sub ecx, eax
sub edx, eax
mov r11d, ecx
mov ecx, eax
shr ecx, 0xc
xor ecx, r11d
sub edx, ecx
sub eax, ecx
mov r11d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r11d
sub eax, edx
sub ecx, edx
mov r11d, eax
mov eax, edx
shr eax, 5
xor eax, r11d
mov r11d, eax
sub ecx, eax
sub edx, eax
shr r11d, 3
xor r11d, ecx
mov edi, r11d
sub edx, r11d
sub eax, r11d
shl edi, 0xa
xor edi, edx
mov ecx, edi
sub eax, edi
shr ecx, 0xf
xor ecx, eax
cmp r8, r9
jne 0x1400ae998
movzx eax, byte [rsi + 0x4b]
movzx edx, byte [rsi + 0x4a]
add ecx, 0x4d
movzx r8d, byte [rsi + 0x4c]
shl edx, 0x10
shl eax, 0x18
add eax, edx
movzx edx, byte [rsi + 0x48]
add r8d, edi
add eax, edx
movzx edx, byte [rsi + 0x49]
shl edx, 8
add eax, edx
mov edx, ecx
add eax, r11d
shr edx, 0xd
sub eax, r8d
sub r8d, ecx
sub eax, ecx
xor edx, eax
mov eax, edx
sub r8d, edx
sub ecx, edx
shl eax, 8
xor eax, r8d
sub ecx, eax
sub edx, eax
mov r8d, ecx
mov ecx, eax
shr ecx, 0xd
xor ecx, r8d
mov r8d, ecx
sub edx, ecx
sub eax, ecx
shr r8d, 0xc
xor r8d, edx
mov edx, r8d
sub eax, r8d
sub ecx, r8d
shl edx, 0x10
xor edx, eax
mov eax, edx
sub ecx, edx
shr eax, 5
xor eax, ecx
sub r8d, edx
mov ecx, eax
sub r8d, eax
sub edx, eax
shr ecx, 3
xor ecx, r8d
mov ebp, ecx
sub edx, ecx
sub eax, ecx
shl ebp, 0xa
xor ebp, edx
mov rdx, qword [r10 + 0x118]
sub eax, ebp
shr ebp, 0xf
xor ebp, eax
mov eax, dword [rdx + 8]
sub eax, 1
and eax, ebp
shl rax, 4
add rax, qword [rdx]
mov rdi, qword [rax]
mov eax, 0xfffffffe
test rdi, rdi
je 0x1400aeba3
mov rax, qword [rdx + 0x20]
mov r12, rax
sub rdi, rax
neg r12
jmp 0x1400aeb77
mov rdi, qword [rdi + 0x138]
test rdi, rdi
je 0x1400aebb0
add rdi, r12
cmp dword [rdi + 0x14c], ebp
jne 0x1400aeb68
cmp dword [rdi + 0x148], 0x4d
jne 0x1400aeb68
mov rcx, qword [rdi + 0x140]
mov r8d, 0x4d
mov rdx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1400aeb68
mov byte [rdi], bl
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
add rsp, 0x20
mov eax, 0xfffffffe
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov eax, 0xfffffffe
ret
mov eax, 0xffffffff
ret