Function at 0x20240160
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
mov eax, dword [0x205b4934]
lea r8d, [rax - 1]
imul r8d, eax
and r8d, 1
mov eax, 0xef640478
add eax, dword [0x20564740]
cmp r8d, eax
nop word cs:[rax + rax]
mov eax, 0xef640479
add eax, dword [0x20564740]
lea r8, [fcn.20240160]
add r8d, r8d
add r8d, 0x4d40
test r8d, eax
jne 0x20240190
test ecx, ecx
je 0x202401d7
test edx, edx
je 0x202402dc
mov eax, dword [0x205b4934]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20240529
jmp 0x2024051c
mov eax, 0xef640478
add eax, dword [0x20564740]
cmp edx, eax
jne 0x20240220
movzx eax, byte [0x205645f8]
cmp al, 0x2a
je 0x20240424
mov cl, 0xbf
nop word [rax + rax]
mov al, 0xe6
lock cmpxchg byte [0x205645f8], cl
je 0x202403da
cmp al, 0x2a
jne 0x20240200
jmp 0x20240424
mov eax, dword [0x205b4938]
cmp eax, 0x58
jle 0x20240243
movzx eax, byte [0x205646c3]
mov eax, dword [0x205b4934]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20240220
movzx eax, byte [0x205646c3]
movzx ecx, byte [0x20564744]
mov edx, dword [0x205b4934]
mov r8d, dword [0x20564740]
neg r8d
add r8d, edx
inc r8d
imul r8d, edx
test r8b, 1
jne 0x2024022b
add cl, 0xe2
cmp al, cl
je 0x202404d1
mov cl, 0x61
nop
mov eax, dword [0x205b4938]
cmp eax, 0x28
jg 0x202402d0
nop dword [rax + rax]
movzx edx, byte [0x20564744]
lea eax, [rdx + 0x2e]
add dl, 0x96
lock cmpxchg byte [0x205646c3], dl
sete dl
cmp dword [0x20564740], 0x109bfb88
jne 0x202402d0
test dl, dl
jne 0x20240408
cmp al, 0xad
jne 0x20240280
jmp 0x202404d1
mov al, 0xf9
lock cmpxchg byte [0x205646c3], cl
jmp 0x20240290
movzx eax, byte [0x2056466e]
cmp al, 0xe6
je 0x202403d1
mov cl, 0xd0
nop dword [rax]
mov al, 0x2b
lock cmpxchg byte [0x2056466e], cl
je 0x20240305
cmp al, 0xe6
jne 0x202402f0
jmp 0x202403d1
xor edx, edx
lea r8, [0x20564660]
lea r9, [0x204786b0]
mov r10d, 0xef640479
lea rax, [fcn.20240160]
lea r11d, [rax + rax]
add r11d, 0x12e0
nop dword [rax]
mov eax, dword [0x205b4934]
lea ecx, [rax - 1]
imul ecx, eax
movsxd rsi, edx
jmp 0x2024039b
movzx eax, byte [rsi + r8]
movzx ecx, byte [rsi + r9]
movzx edi, byte [0x20564744]
mul cl
lea ebx, [rdi + rcx]
add bl, al
add bl, 0x35
sub cl, bl
shl bl, cl
mov eax, ecx
sub al, bl
mov ebx, edi
xor bl, 0x35
and dil, 0x35
add dil, dil
add dil, bl
sub dil, al
add dil, cl
xor dil, al
mov byte [rsi + r8], dil
mov eax, dword [0x205b4934]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20240350
movzx eax, byte [rsi + r9]
xor byte [rsi + r8], al
mov eax, dword [0x20564740]
add eax, r10d
test r11d, eax
jne 0x20240350
inc edx
cmp edx, 0xe
jl 0x20240330
movzx eax, byte [0x20564744]
add al, 0x1b
xchg byte [0x2056466e], al
lea rax, [0x20564660]
jmp 0x2024042b
xor eax, eax
lea rcx, [0x205645f0]
lea rdx, [0x20478640]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 7
jg 0x20240415
inc rax
jmp 0x202403f0
mov eax, dword [0x205b4938]
cmp eax, 0x59
jle 0x2024042f
jmp 0x20240435
movzx eax, byte [0x20564744]
add al, 0x5f
xchg byte [0x205645f8], al
lea rax, [0x205645f0]
pop rbx
pop rdi
pop rsi
ret
mov al, 1
test al, al
jne 0x20240468
mov eax, 0xef640479
lea rcx, [fcn.20240160]
add ecx, ecx
add ecx, 0x2260
nop dword [rax]
mov edx, dword [0x20564740]
add edx, eax
mov r8d, ecx
xor r8d, edx
not r8d
test r8d, edx
jne 0x20240450
jmp 0x2024042f
xor eax, eax
lea rcx, [0x205646a0]
lea rdx, [0x204786f0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x20240498
inc rax
jmp 0x20240480
mov al, 1
nop word [rax + rax]
mov ecx, dword [0x205b4934]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x202404bd
mov cl, 0xad
xchg byte [0x205646c3], cl
test al, al
je 0x202404a0
mov cl, 0xad
xchg byte [0x205646c3], cl
cmp dword [0x20564740], 0x109bfb88
jne 0x202404b1
mov eax, 0xef6404a3
nop word cs:[rax + rax]
mov ecx, dword [0x205b4938]
mov edx, dword [0x20564740]
add edx, eax
cmp ecx, edx
jge 0x202404fd
mov ecx, dword [0x205b4938]
cmp ecx, 0x14
jle 0x20240510
mov ecx, dword [0x205b4934]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x202404e0
jmp 0x202404f2
lea rax, [0x205646a0]
jmp 0x2024042b
movzx eax, byte [0x20564638]
xor ecx, ecx
test cl, cl
je 0x20240532
movzx eax, byte [0x20564638]
jmp 0x2024051c
movzx ecx, byte [0x20564744]
add cl, 0x5d
cmp al, cl
je 0x202405f3
mov cl, 0x33
nop word cs:[rax + rax]
mov al, 0xf2
lock cmpxchg byte [0x20564638], cl
je 0x20240565
cmp al, 0x28
jne 0x20240550
jmp 0x202405f3
mov eax, dword [0x205b4934]
nop dword [rax + rax]
mov eax, dword [0x205b4934]
mov ecx, dword [0x20564740]
neg ecx
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
jne 0x20240570
xor eax, eax
lea rcx, [0x20564630]
lea rdx, [0x20478680]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 7
jg 0x202405c8
inc rax
jmp 0x202405a0
mov eax, dword [0x205b4934]
lea rax, [fcn.20240160]
add eax, eax
add eax, 0x4580
mov ecx, eax
not ecx
test ecx, eax
jne 0x202405e0
movzx eax, byte [0x20564744]
add al, 0x5d
xchg byte [0x20564638], al
lea rax, [0x20564630]
jmp 0x2024042b