Function at 0x140216510
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x136d98de
add eax, dword [0x1404b04d4]
cmp ecx, eax
jne 0x14021655c
test edx, edx
je 0x1402165ed
movzx eax, byte [0x1404ae7bc]
cmp al, 0xd4
je 0x140216554
mov cl, 0x54
nop word cs:[rax + rax]
mov al, 0xaf
lock cmpxchg byte [0x1404ae7bc], cl
je 0x14021668c
cmp al, 0xd4
jne 0x140216540
lea rax, [0x1404ae7b0]
ret
mov eax, 0x136d991b
nop word cs:[rax + rax]
mov ecx, dword [0x1404ef658]
mov r8d, dword [0x1404b04d4]
add r8d, ecx
dec r8d
imul r8d, ecx
test r8b, 1
jne 0x1402165a2
mov ecx, dword [0x1404ef65c]
mov r8d, dword [0x1404b04d4]
add r8d, eax
cmp ecx, r8d
jl 0x1402165d5
mov ecx, dword [0x1404ef658]
lea r8d, [rcx - 1]
imul r8d, ecx
and r8d, 1
mov ecx, dword [0x1404b04d4]
mov r9d, ecx
xor r9d, 0x136d98de
and ecx, 0x136d98de
lea ecx, [r9 + rcx*2]
cmp r8d, ecx
jne 0x140216570
jmp 0x14021658d
test edx, edx
je 0x140216601
mov eax, dword [0x1404ef65c]
cmp eax, 0x30
jle 0x14021683f
jmp 0x140216852
mov eax, dword [0x1404ef65c]
cmp eax, 0x52
jle 0x1402167af
jmp 0x1402167bc
xor eax, eax
lea rcx, [fcn.140216510]
add ecx, ecx
add ecx, 0x2a40
nop word cs:[rax + rax]
mov edx, dword [0x1404ef65c]
cmp edx, 0x4e
jg 0x140216636
movzx edx, byte [0x1404aea4f]
test al, al
je 0x140216668
movzx edx, byte [0x1404aea4f]
mov edx, dword [0x1404b04d4]
lea r8d, [rdx + 0x136d98df]
and r8d, ecx
mov r9d, edx
xor r9d, 0x136d98de
and edx, 0x136d98de
lea edx, [r9 + rdx*2]
cmp r8d, edx
jne 0x140216620
jmp 0x14021662b
cmp dl, 0x3a
je 0x140216684
mov cl, 0x14
nop
mov al, 0x50
lock cmpxchg byte [0x1404aea4f], cl
je 0x14021676b
cmp al, 0x3a
jne 0x140216670
lea rax, [0x1404aea40]
ret
xor edx, edx
lea r8, [0x1404ae7b0]
lea r9, [0x1403c6310]
nop dword [rax]
mov eax, dword [0x1404ef65c]
cmp eax, 0x15
jg 0x1402166e0
nop dword [rax + rax]
movzx eax, byte [rdx + r9]
add byte [rdx + r8], al
mov eax, dword [0x1404ef65c]
cmp eax, 0x23
jg 0x1402166e0
lea eax, [rdx + 1]
cmp eax, 0xb
jg 0x140216718
inc rdx
jmp 0x1402166a0
movzx r10d, byte [0x1404b04d0]
lea ecx, [r10 - 0x55]
mov r11d, ecx
sub r11b, byte [rdx + r8]
movzx eax, byte [rdx + r9]
add al, r11b
sub r10b, r11b
sub cl, al
add cl, r10b
add cl, 0xab
sub al, cl
mul cl
shl al, cl
neg al
mul cl
add al, cl
mov byte [rdx + r8], al
jmp 0x1402166b0
mov eax, 0x136d98de
nop dword [rax]
mov ecx, dword [0x1404ef65c]
cmp ecx, 0xd
jg 0x140216746
mov ecx, dword [0x1404ef658]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1404b04d4]
add ecx, eax
cmp edx, ecx
je 0x140216754
cmp dword [0x1404b04d4], 0xec926722
jne 0x140216720
jmp 0x14021672b
movzx eax, byte [0x1404b04d0]
add al, 0x7f
xchg byte [0x1404ae7bc], al
lea rax, [0x1404ae7b0]
ret
xor edx, edx
lea rax, [0x1404aea40]
lea rcx, [0x1403c65a0]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xf
jl 0x140216780
mov al, 0x3a
xchg byte [0x1404aea4f], al
lea rax, [0x1404aea40]
ret
movzx eax, byte [0x1404aeb0d]
xor ecx, ecx
test cl, cl
je 0x1402167c5
movzx eax, byte [0x1404aeb0d]
jmp 0x1402167af
cmp al, 0xe5
je 0x1402167e0
mov cl, 0x68
nop dword [rax + rax]
mov al, 0xea
lock cmpxchg byte [0x1404aeb0d], cl
je 0x1402167e8
cmp al, 0xe5
jne 0x1402167d0
lea rax, [0x1404aeb00]
ret
xor edx, edx
lea rax, [0x1404aeb00]
lea rcx, [0x1403c6660]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xd
jl 0x140216800
movzx eax, byte [0x1404b04d0]
mov ecx, eax
xor cl, 0x90
and al, 0x10
add al, al
add al, cl
xchg byte [0x1404aeb0d], al
lea rax, [0x1404aeb00]
ret
movzx eax, byte [0x1404ae4bd]
cmp dword [0x1404b04d4], 0xec926722
je 0x14021685b
movzx eax, byte [0x1404ae4bd]
jmp 0x14021683f
cmp al, 0xc9
je 0x1402168f9
xor ecx, ecx
mov dl, 0xd3
nop word [rax + rax]
test cl, cl
jne 0x1402168b0
nop word cs:[rax + rax]
mov al, 0x45
lock cmpxchg byte [0x1404ae4bd], dl
sete r8b
test cl, cl
jne 0x1402168b0
test r8b, r8b
jne 0x1402168bc
movzx r8d, byte [0x1404b04d0]
add r8b, 0x74
cmp al, r8b
jne 0x140216870
jmp 0x1402168f9
mov al, 0x45
lock cmpxchg byte [0x1404ae4bd], dl
jmp 0x140216880
xor edx, edx
lea rax, [0x1404ae4a0]
lea rcx, [0x1403c6030]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x1404b04d4]
add edx, r8d
add edx, 0x136d98df
cmp edx, 0x1d
jl 0x1402168d0
mov al, 0xc9
xchg byte [0x1404ae4bd], al
lea rax, [0x1404ae4a0]
ret