Function at 0x1400ab960
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov r8d, dword [rsp + 0x38]
test ecx, ecx
je 0x1400ab9a9
test edx, edx
je 0x1400aba2f
movzx eax, byte [0x1405d04e8]
mov ecx, r8d
xor cl, 0xf2
add cl, byte [0x1405508cc]
cmp al, cl
je 0x1400abad5
mov cl, 0x3c
xor eax, eax
lock cmpxchg byte [0x1405d04e8], cl
je 0x1400aba89
cmp al, 0xcd
jne 0x1400ab990
jmp 0x1400abad5
test edx, edx
je 0x1400aba59
movzx eax, byte [0x140550096]
cmp al, 0x8f
je 0x1400abb52
mov cl, 0xc1
nop word cs:[rax + rax]
mov al, 0xb6
lock cmpxchg byte [0x140550096], cl
je 0x1400abae1
movzx edx, byte [0x1405508cc]
mov r9d, r8d
not r9b
mov r10d, r8d
xor r10b, 0x4b
and r9b, 0xb4
or r10b, r9b
not r10b
or r10b, r9b
mov r9d, r10d
not r9b
mov r11d, r9d
and r11b, dl
mov ebx, r10d
xor r10b, dl
not dl
and bl, dl
or bl, r11b
and dl, r9b
or dl, r10b
not dl
add dl, dl
add dl, bl
cmp al, dl
jne 0x1400ab9d0
jmp 0x1400abb52
movzx eax, byte [0x140550263]
cmp al, 6
je 0x1400abbc5
mov cl, 9
mov al, 0x6b
lock cmpxchg byte [0x140550263], cl
je 0x1400abb5e
cmp al, 6
jne 0x1400aba40
jmp 0x1400abbc5
movzx eax, byte [0x14055030d]
cmp al, 0x33
je 0x1400abc48
mov cl, 0x29
nop word [rax + rax]
mov al, 0xaa
lock cmpxchg byte [0x14055030d], cl
je 0x1400abbd1
cmp al, 0x33
jne 0x1400aba70
jmp 0x1400abc48
xor eax, eax
lea rcx, [0x1405502d0]
lea rdx, [0x140489340]
xor r8d, 0xd99c89a9
cdqe
movzx r9d, byte [rax + rdx]
mov r10d, r9d
xor r10b, r9b
not r10b
and r10b, byte [rax + rcx]
xor r10b, r9b
mov byte [rax + rcx], r10b
mov r9d, dword [0x1405508c8]
add r9d, r8d
add eax, r9d
cmp eax, 0xd
jl 0x1400abaa0
mov al, 0xcd
xchg byte [0x1405d04e8], al
lea rax, [0x1405502d0]
jmp 0x1400abc4f
xor eax, eax
lea rcx, [0x140550090]
lea rdx, [0x140489120]
mov r9d, r8d
xor r9d, 0xd99c89a9
nop dword [rax + rax]
cdqe
movzx r10d, byte [rax + rcx]
movzx r11d, byte [rax + rdx]
mov ebx, r10d
not bl
mov esi, ebx
xor sil, r11b
not r11b
and r10b, r11b
or r10b, sil
not r10b
xor bl, r11b
and bl, r11b
or bl, r10b
mov byte [rax + rcx], bl
mov r10d, dword [0x1405508c8]
add r10d, r9d
add eax, r10d
cmp eax, 6
jl 0x1400abb00
xor r8b, 0xb4
add r8b, byte [0x1405508cc]
xchg byte [0x140550096], r8b
lea rax, [0x140550090]
jmp 0x1400abc4f
xor eax, eax
lea rcx, [0x140550240]
lea rdx, [0x1404892b0]
xor r8d, 0xd99c898b
nop word cs:[rax + rax]
movzx r9d, byte [rax + rcx]
movzx r10d, byte [rax + rdx]
add r9b, 0xd9
mov r11d, r9d
xor r11b, r10b
and r9b, r10b
add r9b, r9b
add r9b, r11b
add r9b, 0x27
mov byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x1405508c8]
add r10d, r8d
cmp r9d, r10d
jge 0x1400abbbd
inc rax
jmp 0x1400abb80
mov al, 6
xchg byte [0x140550263], al
lea rax, [0x140550240]
jmp 0x1400abc4f
xor edx, edx
lea rax, [0x140550300]
lea rcx, [0x140489370]
mov r9d, r8d
not r9d
and r9d, 0xd99c8995
xor r8d, 0x2663766a
or r8d, r9d
not r8d
or r8d, r9d
nop
movsxd rdx, edx
movzx r9d, byte [rdx + rax]
movzx r10d, byte [rdx + rcx]
not r9b
mov r11d, r9d
and r11b, r10b
or r9b, r10b
not r9b
or r9b, r11b
mov byte [rdx + rax], r9b
mov r9d, edx
xor r9d, 1
and edx, 1
lea edx, [r9 + rdx*2]
mov r9d, dword [0x1405508c8]
add r9d, r8d
cmp edx, r9d
jl 0x1400abc00
mov al, 0x33
xchg byte [0x14055030d], al
lea rax, [0x140550300]
pop rbx
pop rsi
ret