Function at 0x204004f0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x27f7a550
add eax, dword [0x205a5130]
lea r8, [fcn.204004f0]
add r8d, r8d
add r8d, 0x4420
test r8d, eax
jne 0x20400520
mov al, 1
test al, al
jne 0x2040052d
nop word [rax + rax]
mov eax, dword [0x205b86ac]
cmp eax, 0x27
jge 0x20400520
jmp 0x20400511
test ecx, ecx
je 0x20400569
test edx, edx
je 0x2040059c
movzx eax, byte [0x205a459d]
movzx ecx, byte [0x205a5134]
add cl, 0x25
cmp al, cl
je 0x2040087e
mov cl, 0x97
mov al, 0xf8
lock cmpxchg byte [0x205a459d], cl
je 0x2040062c
cmp al, 0xfa
jne 0x20400550
jmp 0x2040087e
test edx, edx
je 0x204005f8
movzx eax, byte [0x205a445d]
cmp al, 0xd3
je 0x20400594
mov cl, 0x2e
nop
mov al, 0x92
lock cmpxchg byte [0x205a445d], cl
je 0x2040069d
cmp al, 0xd3
jne 0x20400580
lea rax, [0x205a4450]
ret
movzx eax, byte [0x205a436c]
cmp al, 0xdd
je 0x20400760
mov cl, 0xd2
xor edx, edx
mov r8b, 1
jmp 0x204005c8
cmp al, 0xdd
je 0x20400760
mov al, 0x31
lock cmpxchg byte [0x205a436c], cl
je 0x2040071b
nop dword [rax + rax]
test dl, dl
jne 0x204005f1
mov r9d, dword [0x205b86ac]
cmp r9d, 0x2f
jle 0x204005c0
test r8b, r8b
je 0x204005e0
jmp 0x204005e4
movzx eax, byte [0x205a41dc]
cmp al, 1
je 0x20400624
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x2c
lock cmpxchg byte [0x205a41dc], cl
je 0x20400768
cmp al, 1
jne 0x20400610
lea rax, [0x205a41d0]
ret
mov eax, dword [0x205b86ac]
nop word cs:[rax + rax]
mov eax, dword [0x205b86ac]
cmp eax, 0xe
jg 0x20400640
xor eax, eax
lea rcx, [0x205a4590]
lea rdx, [0x2049b050]
nop dword [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, 0xc
jg 0x20400688
inc rax
jmp 0x20400660
cmp dword [0x205a5130], 0xd8085ab1
jne 0x20400840
jmp 0x20400811
xor edx, edx
lea rax, [0x205a4450]
lea rcx, [0x2049af10]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rdx + rax], r8b
mov r8d, dword [0x205a5130]
add edx, r8d
add edx, 0x27f7a550
add r8d, 0x27f7a55c
cmp edx, r8d
jl 0x204006b0
mov eax, dword [0x205b86ac]
nop word cs:[rax + rax]
mov eax, dword [0x205b86ac]
cmp eax, 0x43
jg 0x20400700
mov al, 0xd3
xchg byte [0x205a445d], al
lea rax, [0x205a4450]
ret
xor eax, eax
lea rcx, [0x205a4360]
lea rdx, [0x2049ae20]
nop dword [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, 0xb
jg 0x20400758
inc rax
jmp 0x20400730
mov al, 0xdd
xchg byte [0x205a436c], al
lea rax, [0x205a4360]
ret
xor eax, eax
lea rcx, [0x205a41d0]
lea rdx, [0x2049ac90]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x20400798
inc rax
jmp 0x20400780
mov eax, dword [0x205b86ac]
nop
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x204007a0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x204007e9
movzx ecx, byte [0x205a5134]
add cl, 0x2c
xchg byte [0x205a41dc], cl
mov ecx, dword [0x205b86a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x20400624
mov cl, 1
xchg byte [0x205a41dc], cl
mov ecx, dword [0x205b86a8]
mov edx, dword [0x205a5130]
neg edx
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
jne 0x204007c0
jmp 0x204007c4
mov eax, dword [0x205b86ac]
mov ecx, dword [0x205a5130]
mov edx, ecx
xor edx, 0x27f7a56d
and ecx, 0x27f7a56d
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x20400853
nop word cs:[rax + rax]
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20400840
jmp 0x20400811
mov al, 0xfa
xchg byte [0x205a459d], al
jmp 0x2040087e
mov eax, dword [0x205b86a8]
mov ecx, dword [0x205a5130]
neg ecx
add ecx, eax
add ecx, 0xd8085ab0
imul ecx, eax
test cl, 1
je 0x2040088a
cmp dword [0x205a5130], 0xd8085ab1
jne 0x20400860
mov eax, dword [0x205b86ac]
cmp eax, 0x40
jg 0x20400860
lea rax, [0x205a4590]
ret