Function at 0x14017d8c0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov eax, 0xaa8bd721
mov r8d, dword [0x14056b6cc]
add r8d, eax
cmp ecx, r8d
jne 0x14017d930
nop word [rax + rax]
mov ecx, dword [0x1405d0c78]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x14056b6cc]
add ecx, eax
cmp r8d, ecx
jne 0x14017d923
mov ecx, dword [0x1405d0c78]
mov r8d, 0xf0316385
sub r8d, ecx
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x14056b6cc]
add ecx, eax
cmp r8d, ecx
je 0x14017d95c
mov ecx, dword [0x1405d0c7c]
cmp ecx, 0x1f
jge 0x14017d8e0
jmp 0x14017d8ff
test edx, edx
je 0x14017d995
mov ecx, dword [0x1405d0c78]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0xaa8bd723
add ecx, dword [0x14056b6cc]
xor edx, edx
div ecx
test edx, edx
jne 0x14017dc51
jmp 0x14017dc39
test edx, edx
je 0x14017d9c9
movzx eax, byte [0x14056b11d]
cmp al, 0x6c
je 0x14017da6f
mov cl, 0x84
nop word cs:[rax + rax]
mov al, 0x7d
lock cmpxchg byte [0x14056b11d], cl
je 0x14017da03
cmp al, 0x6c
jne 0x14017d980
jmp 0x14017da6f
movzx eax, byte [0x14056af7f]
cmp al, 0x28
je 0x14017dc00
mov cl, 0xb2
nop word cs:[rax + rax]
mov al, 0x1b
lock cmpxchg byte [0x14056af7f], cl
je 0x14017da7b
cmp al, 0x28
jne 0x14017d9b0
jmp 0x14017dc00
movzx eax, byte [0x14056b0ed]
cmp al, 0x6d
je 0x14017dc2e
mov cl, 0x31
nop word [rax + rax]
mov al, 0x83
lock cmpxchg byte [0x14056b0ed], cl
je 0x14017db5d
movzx edx, byte [0x14056b6c8]
add dl, 0x9b
cmp al, dl
jne 0x14017d9e0
jmp 0x14017dc2e
xor eax, eax
lea rcx, [0x14056b110]
lea rdx, [0x14048e960]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
not r11b
and r10b, r9b
and r11b, r8b
mov r8d, r11d
xor r8b, r11b
not r8b
and r8b, r10b
and r10b, r11b
xor r8b, r11b
or r8b, r10b
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x14017da67
inc rax
jmp 0x14017da20
mov al, 0x6c
xchg byte [0x14056b11d], al
lea rax, [0x14056b110]
jmp 0x14017dc35
xor r8d, r8d
lea r9, [0x14056af70]
lea r10, [0x14048e7c0]
mov r11d, 0xaa8bd738
mov esi, 0xaa8bd76c
jmp 0x14017daad
inc r8d
cmp r8d, 0xf
jge 0x14017dbf1
mov eax, dword [0x1405d0c7c]
movsxd rdi, r8d
cmp eax, 0x54
jg 0x14017dae0
nop dword [rax + rax]
movzx eax, byte [rdi + r10]
add byte [rdi + r9], al
mov eax, dword [0x1405d0c7c]
mov ecx, dword [0x14056b6cc]
add ecx, r11d
cmp eax, ecx
jl 0x14017daa0
nop dword [rax]
movzx eax, byte [rdi + r9]
movzx ecx, byte [rdi + r10]
mov dl, 0x9a
sub dl, al
sub al, cl
mul cl
mov ecx, eax
mov eax, edx
xor al, cl
and dl, cl
add dl, dl
add dl, al
add dl, 0x66
shl dl, cl
sub cl, dl
mov bl, 0x14
sub bl, cl
mov eax, ebx
xor al, 0xec
and bl, 0x6c
add bl, bl
add al, dl
add al, bl
add cl, al
add al, cl
neg al
mul cl
sub al, cl
mul cl
mov edx, eax
lea eax, [rdx - 0x1b]
mov ebx, eax
xor bl, 0xbf
and al, 0x3f
add al, al
add al, bl
sub al, cl
add al, 0x5c
mul cl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
add al, cl
mov byte [rdi + r9], al
mov eax, dword [0x1405d0c7c]
mov ecx, dword [0x14056b6cc]
add ecx, esi
cmp eax, ecx
jge 0x14017dae0
jmp 0x14017dac0
xor r8d, r8d
lea rax, [0x14056b0e0]
lea rcx, [0x14048e930]
mov edx, 0xaa8bd72e
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rax]
movzx r10d, byte [r8 + rcx]
not r9b
mov r11d, r9d
and r11b, r10b
or r9b, r10b
not r9b
or r9b, r11b
mov byte [r8 + rax], r9b
mov r9d, r8d
not r9d
mov r10d, r8d
xor r10d, 1
and r10d, r9d
mov r11d, r8d
xor r11d, 0xfffffffe
and r9d, 1
or r9d, r11d
not r9d
or r9d, r10d
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x14056b6cc]
add r9d, edx
cmp r8d, r9d
jl 0x14017db80
mov eax, dword [0x1405d0c78]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14017dc14
jmp 0x14017dc09
movzx eax, byte [0x14056b6c8]
add al, 0x56
xchg byte [0x14056af7f], al
lea rax, [0x14056af70]
jmp 0x14017dc35
mov eax, dword [0x1405d0c7c]
cmp eax, 0xe
jl 0x14017dc26
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x14017dc20
jmp 0x14017dc09
mov al, 0x6d
xchg byte [0x14056b0ed], al
lea rax, [0x14056b0e0]
pop rbx
pop rdi
pop rsi
ret
movzx eax, byte [0x14056af89]
mov ecx, dword [0x1405d0c78]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
je 0x14017dc5a
movzx eax, byte [0x14056af89]
jmp 0x14017dc39
cmp al, 0x2c
je 0x14017dd6b
mov ecx, 0xaa8bd722
lea rax, [fcn.14017d8c0]
lea edx, [rax + rax]
add edx, 0x2ae0
mov r8d, edx
not r8d
mov r9b, 0x12
xor r10d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x14056b6cc]
add eax, ecx
mov r11d, edx
xor r11d, eax
not eax
and eax, r8d
or eax, r11d
cmp eax, 0xffffffff
jne 0x14017dcf0
nop dword [rax + rax]
mov al, 0x4c
lock cmpxchg byte [0x14056af89], r9b
sete r11b
test r10b, r10b
jne 0x14017dcf0
test r11b, r11b
jne 0x14017dcfd
movzx r11d, byte [0x14056b6c8]
mov ebx, r11d
xor bl, 0x5a
and r11b, 0x5a
add r11b, r11b
add r11b, bl
cmp al, r11b
jne 0x14017dc90
jmp 0x14017dd6b
mov al, 0x4c
lock cmpxchg byte [0x14056af89], r9b
jmp 0x14017dcb0
xor eax, eax
lea rcx, [0x14056af80]
lea rdx, [0x14048e7d0]
nop dword [rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r8d
and r11b, r9b
not r9b
mov ebx, r10d
and bl, r9b
or bl, r11b
xor r10b, r9b
and r10b, r8b
or r10b, bl
and r9b, r8b
not r9b
mov r8d, r9d
xor r8b, r10b
or r9b, r10b
not r9b
or r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x14017dd63
inc rax
jmp 0x14017dd10
mov al, 0x2c
xchg byte [0x14056af89], al
lea rax, [0x14056af80]
jmp 0x14017dc35