Function at 0x2024ad40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
xor eax, eax
test al, al
nop word [rax + rax]
mov eax, dword [0x205b4a2c]
cmp eax, 0x4a
jg 0x2024ad50
test ecx, ecx
je 0x2024ada3
test edx, edx
je 0x2024ae3c
movzx eax, byte [0x20565d0d]
cmp al, 0xad
je 0x2024b001
mov cl, 0x6d
nop dword [rax + rax]
mov al, 0x10
lock cmpxchg byte [0x20565d0d], cl
je 0x2024af29
movzx edx, byte [0x2056635c]
add dl, 0x52
cmp al, dl
jne 0x2024ad80
jmp 0x2024b001
test edx, edx
je 0x2024aef3
movzx eax, byte [0x20565c73]
movzx ecx, byte [0x2056635c]
mov edx, ecx
xor dl, 0xd6
and cl, 0x56
add cl, cl
add cl, dl
cmp al, cl
je 0x2024b093
mov cl, 0x53
jmp 0x2024ae06
movzx edx, byte [0x2056635c]
lea eax, [rdx + 9]
add dl, 0xf8
lock cmpxchg byte [0x20565c73], dl
mov eax, dword [0x205b4a28]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x2024ae11
mov eax, dword [0x205b4a2c]
cmp eax, 0x1e
jg 0x2024ade0
mov al, 0x64
lock cmpxchg byte [0x20565c73], cl
sete dl
mov r8d, dword [0x205b4a2c]
cmp r8d, 0x55
jg 0x2024ade0
test dl, dl
jne 0x2024b00d
cmp al, 0x31
jne 0x2024ae06
jmp 0x2024b093
movzx eax, byte [0x20565e3d]
cmp al, 0xd4
je 0x2024b13d
mov r8b, 0x42
jmp 0x2024aeba
mov al, 0x18
lock cmpxchg byte [0x20565e3d], r8b
mov ecx, eax
sete r9b
mov edx, dword [0x205b4a28]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x20566358]
mov r10d, edx
xor r10d, 0x53ef75c9
and edx, 0x53ef75c9
lea r10d, [r10 + rdx*2]
add r10d, 0xa3018f3f
xor edx, edx
div r10d
test edx, edx
je 0x2024aee0
mov al, 0x18
lock cmpxchg byte [0x20565e3d], r8b
mov eax, dword [0x205b4a28]
mov ecx, dword [0x20566358]
not ecx
add ecx, eax
imul ecx, eax
test cl, 1
je 0x2024ae50
mov eax, dword [0x205b4a28]
mov ecx, dword [0x20566358]
neg ecx
add ecx, eax
inc ecx
imul ecx, eax
test cl, 1
jne 0x2024ae97
jmp 0x2024ae50
test r9b, r9b
jne 0x2024b09f
cmp cl, 0xd4
jne 0x2024aeba
jmp 0x2024b13d
movzx eax, byte [0x20565d23]
cmp al, 0xdc
je 0x2024b187
mov cl, 0x79
nop word cs:[rax + rax]
mov al, 0xa6
lock cmpxchg byte [0x20565d23], cl
je 0x2024b146
cmp al, 0xdc
jne 0x2024af10
jmp 0x2024b187
xor eax, eax
mov ecx, 0xf6f10506
test al, al
jne 0x2024af53
mov edx, dword [0x205b4a28]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x20566358]
add edx, ecx
cmp r8d, edx
je 0x2024af60
mov edx, dword [0x205b4a2c]
cmp edx, 0x45
jge 0x2024af30
jmp 0x2024af34
xor edx, edx
lea rax, [0x20565d00]
lea rcx, [0x20478f50]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
xor r8d, r8d
sub r8d, dword [0x20566358]
mov byte [rdx + rax], r9b
mov r9d, r8d
xor r9d, 0x90efaf9
and r8d, 0x90efaf9
lea r8d, [r9 + r8*2]
neg edx
mov r9d, edx
xor r9d, r8d
and edx, r8d
lea edx, [r9 + rdx*2]
neg edx
cmp edx, 0xd
jl 0x2024af70
mov al, 1
nop word cs:[rax + rax]
mov ecx, dword [0x205b4a2c]
cmp ecx, 0x33
jg 0x2024aff3
mov ecx, dword [0x205b4a28]
mov edx, dword [0x20566358]
xor edx, ecx
not edx
imul edx, ecx
test dl, 1
je 0x2024aff9
test al, al
je 0x2024afd0
jmp 0x2024afdb
mov al, 0xad
xchg byte [0x20565d0d], al
lea rax, [0x20565d00]
jmp 0x2024b18e
xor edx, edx
lea rax, [0x20565c70]
lea rcx, [0x20478ec0]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
not r10b
mov r11d, r9d
xor r11b, r10b
and r10b, r9b
not r11b
and r11b, r8b
or r11b, r10b
mov byte [rdx + rax], r11b
mov r8d, dword [0x20566358]
add edx, r8d
add edx, 0xf6f10507
cmp edx, 3
jl 0x2024b020
mov eax, 0xf6f10506
nop word cs:[rax + rax]
mov ecx, dword [0x205b4a28]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x20566358]
add ecx, eax
cmp edx, ecx
jne 0x2024b070
mov al, 0x31
xchg byte [0x20565c73], al
lea rax, [0x20565c70]
jmp 0x2024b18e
xor r9d, r9d
lea r10, [0x20565e30]
lea r11, [0x20479080]
xor esi, esi
jmp 0x2024b0c7
inc esi
cmp esi, 0xd
jge 0x2024b135
movsxd rdi, esi
test r9b, r9b
jne 0x2024b0f0
nop
movzx eax, byte [rdi + r11]
xor byte [rdi + r10], al
mov eax, dword [0x205b4a28]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2024b0c0
nop word [rax + rax]
movzx eax, byte [rdi + r10]
movzx ecx, byte [rdi + r11]
mov edx, eax
shl dl, cl
neg al
mul dl
sub al, dl
mul dl
mov r8d, eax
mov ebx, eax
mov ecx, edx
shl bl, cl
sub al, bl
mul bl
mov edx, r8d
mov ecx, eax
shl dl, cl
mov eax, r8d
mov ecx, edx
shl al, cl
xor al, r8b
mov byte [rdi + r10], al
mov eax, dword [0x205b4a2c]
cmp eax, 0x42
jge 0x2024b0f0
jmp 0x2024b0d0
mov al, 0xd4
xchg byte [0x20565e3d], al
lea rax, [0x20565e30]
jmp 0x2024b18e
xor edx, edx
lea rax, [0x20565d10]
lea rcx, [0x20478f60]
nop word cs:[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, 0x13
jl 0x2024b160
mov al, 0xdc
xchg byte [0x20565d23], al
lea rax, [0x20565d10]
pop rbx
pop rdi
pop rsi
ret