Function at 0x20222fb0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov eax, dword [0x205b4764]
mov r8d, 0x136d993e
add r8d, dword [0x20560dd4]
cmp eax, r8d
nop dword [rax]
mov eax, dword [0x205b4764]
cmp eax, 0x35
jg 0x20222fd0
test ecx, ecx
je 0x20223019
test edx, edx
je 0x20223076
movzx eax, byte [0x2055eddb]
cmp al, 0x57
je 0x2022316d
mov cl, 0x3f
nop dword [rax + rax]
mov al, 0x3b
lock cmpxchg byte [0x2055eddb], cl
je 0x20223113
cmp al, 0x57
jne 0x20223000
jmp 0x2022316d
test edx, edx
je 0x202230a9
movzx eax, byte [0x2055f131]
cmp al, 0x1f
je 0x20223044
mov cl, 0x8e
nop
mov al, 0xa9
lock cmpxchg byte [0x2055f131], cl
je 0x20223179
cmp al, 0x1f
jne 0x20223030
mov eax, dword [0x205b4760]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x20560dd4]
mov edx, eax
xor edx, 0x136d98de
and eax, 0x136d98de
lea eax, [rdx + rax*2]
cmp ecx, eax
jne 0x202232e0
jmp 0x202232d5
movzx eax, byte [0x2055f33d]
cmp al, 0x8f
je 0x202232ca
mov cl, 0xec
nop word [rax + rax]
mov al, 0x33
lock cmpxchg byte [0x2055f33d], cl
je 0x2022323a
cmp al, 0x8f
jne 0x20223090
jmp 0x202232ca
movzx eax, byte [0x2055f3ba]
cmp al, 0xee
je 0x20223107
movzx ecx, byte [0x20560dd0]
lea eax, [rcx + 0x3e]
add cl, 0xb1
lock cmpxchg byte [0x2055f3ba], cl
jne 0x202230b0
xor edx, edx
lea rax, [0x2055f3b0]
lea rcx, [0x20477480]
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, 0xa
jl 0x202230e0
mov al, 0xee
xchg byte [0x2055f3ba], al
lea rax, [0x2055f3b0]
jmp 0x202232d1
xor eax, eax
lea rcx, [0x2055edc0]
lea rdx, [0x20476ec0]
mov r8d, 0x136d98f9
nop dword [rax]
movzx r9d, byte [rax + rcx]
movzx r10d, byte [rax + rdx]
mov r11d, r9d
xor r11b, r10b
and r9b, r10b
add r9b, r9b
add r9b, r11b
mov byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x20560dd4]
add r10d, r8d
cmp r9d, r10d
jge 0x20223165
inc rax
jmp 0x20223130
mov al, 0x57
xchg byte [0x2055eddb], al
lea rax, [0x2055edc0]
jmp 0x202232d1
xor r8d, r8d
mov r9d, 0x136d9910
lea r10, [0x2055f120]
lea r11, [0x204771f0]
mov bl, 1
jmp 0x202231b8
mov eax, r8d
xor eax, 1
and r8d, 1
lea r8d, [rax + r8*2]
cmp r8d, 0x11
jge 0x20223268
mov eax, dword [0x205b4764]
mov ecx, dword [0x20560dd4]
add ecx, r9d
movsxd rsi, r8d
cmp eax, ecx
jge 0x202231e0
nop
movzx eax, byte [rsi + r11]
add byte [rsi + r10], al
test bl, bl
jne 0x202231a0
nop dword [rax]
movzx eax, byte [rsi + r10]
movzx ecx, byte [rsi + r11]
sub al, cl
mul cl
mov edx, eax
mov edi, eax
shl dil, cl
sub al, dil
mul dil
mov ecx, eax
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
shl dl, cl
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
shl dl, cl
sub dl, al
mov eax, edx
mul cl
mov edx, eax
sub al, cl
mul cl
mov ecx, eax
sub cl, dl
add cl, al
mov byte [rsi + r10], cl
mov eax, dword [0x205b4760]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x202231e0
jmp 0x202231d0
xor eax, eax
lea rcx, [0x2055f330]
lea rdx, [0x20477400]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x202232c2
inc rax
jmp 0x20223250
xor eax, eax
nop word [rax + rax]
test al, al
je 0x2022327f
mov ecx, dword [0x205b4764]
cmp ecx, 0x39
jge 0x20223270
mov ecx, dword [0x205b4764]
cmp ecx, 0x4e
jg 0x20223274
xor eax, eax
mov cl, 1
nop
mov edx, dword [0x205b4760]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
jne 0x202232b4
mov dl, 0x1f
xchg byte [0x2055f131], dl
test al, al
je 0x20223044
mov dl, 0x1f
xchg byte [0x2055f131], dl
test cl, cl
je 0x20223290
jmp 0x202232a4
mov al, 0x8f
xchg byte [0x2055f33d], al
lea rax, [0x2055f330]
pop rbx
pop rdi
pop rsi
ret
mov al, 1
test al, al
jne 0x202232ee
nop dword [rax + rax]
cmp dword [0x20560dd4], 0xec926722
jne 0x202232e0
jmp 0x202232d5
lea rax, [0x2055f120]
jmp 0x202232d1