Function at 0x20301af0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
test ecx, ecx
je 0x20301b5c
test edx, edx
je 0x20301bd6
movzx eax, byte [0x204918fd]
nop word [rax + rax]
cmp al, 0x90
je 0x20301edb
movzx ecx, byte [0x20492774]
lea eax, [rcx - 0x40]
add cl, 0x8f
lock cmpxchg byte [0x204918fd], cl
jne 0x20301b10
xor eax, eax
lea rcx, [0x204918f0]
lea rdx, [0x203a26d0]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x20301c89
inc rax
jmp 0x20301b40
test edx, edx
je 0x20301c49
mov eax, 0x27f7a550
lea rcx, [fcn.20301af0]
lea edx, [rcx + rcx]
add edx, 0x60
nop word cs:[rax + rax]
mov r8d, dword [0x204a6a70]
lea r9d, [r8 + 1]
imul r9d, r8d
test r9b, 1
jne 0x20301bb2
movzx r8d, byte [0x204919cd]
mov r9d, dword [0x20492770]
add r9d, eax
xor r9d, edx
not r9d
test r9d, edx
je 0x20301c09
movzx r8d, byte [0x204919cd]
mov r8d, dword [0x20492770]
add r8d, eax
lea r9d, [rcx + rcx]
add r9d, 0x4820
test r9d, r8d
jne 0x20301b80
jmp 0x20301b95
movzx eax, byte [0x2049161f]
cmp al, 0x58
je 0x20301d7f
mov cl, 0xaf
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x2049161f], cl
je 0x20301ca3
cmp al, 0x58
jne 0x20301bf0
jmp 0x20301d7f
movzx eax, byte [0x20492774]
mov ecx, eax
xor cl, 0xd
and al, 0xd
add al, al
add al, cl
cmp r8b, al
je 0x20301d6b
mov cl, 0xff
nop word cs:[rax + rax]
mov al, 0x56
lock cmpxchg byte [0x204919cd], cl
je 0x20301cdc
cmp al, 0xe2
jne 0x20301c30
jmp 0x20301d6b
movzx eax, byte [0x2049182d]
movzx ecx, byte [0x20492774]
mov edx, ecx
xor dl, 0x8d
and cl, 0xd
add cl, cl
add cl, dl
cmp al, cl
je 0x20301e80
mov cl, 0x4c
nop dword [rax]
mov al, 0xb1
lock cmpxchg byte [0x2049182d], cl
je 0x20301d8b
cmp al, 0x62
jne 0x20301c70
jmp 0x20301e80
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20301ec1
jmp 0x20301eb3
xor eax, eax
lea rcx, [0x20491610]
lea rdx, [0x203a23f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x20301d77
inc rax
jmp 0x20301cc0
xor r8d, r8d
lea rax, [0x204919c0]
lea rcx, [0x203a27a0]
mov edx, 0x27f7a55c
nop word cs:[rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
xor byte [r8 + rax], r9b
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
mov r9d, dword [0x20492770]
add r9d, edx
cmp r8d, r9d
jl 0x20301d00
mov eax, dword [0x204a6a70]
mov ecx, dword [0x20492770]
add ecx, eax
add ecx, 0xd8085ab0
jmp 0x20301d49
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20301d40
mov eax, dword [0x204a6a74]
cmp eax, 0x4b
jge 0x20301d40
movzx eax, byte [0x20492774]
add al, 0xd
xchg byte [0x204919cd], al
lea rax, [0x204919c0]
jmp 0x20301eae
mov al, 0x58
xchg byte [0x2049161f], al
lea rax, [0x20491610]
jmp 0x20301eae
mov edx, 1
mov r8d, 0xd8085ab0
mov r9d, 0x27f7a550
xor r10d, r10d
lea r11, [0x20491820]
lea rsi, [0x203a2600]
xor edi, edi
nop
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20301ddd
nop word cs:[rax + rax]
movzx eax, byte [rdi + rsi]
xor byte [rdi + r11], al
test r10b, r10b
je 0x20301e10
movzx ebx, byte [rdi + r11]
movzx ecx, byte [rdi + rsi]
mov eax, ebx
sub al, cl
mul cl
mov ebp, ebx
mov ecx, eax
shl bpl, cl
mov eax, ebp
xor al, bpl
not al
and al, bl
xor al, bpl
mov byte [rdi + r11], al
jmp 0x20301dd0
cmp edx, 0xc
jg 0x20301e23
inc edx
add r8d, 2
dec r9d
inc rdi
jmp 0x20301db0
mov eax, 0x27f7a550
add eax, dword [0x20492770]
lea rcx, [fcn.20301af0]
add ecx, ecx
add ecx, 0xe60
test ecx, eax
jne 0x20301e67
mov al, 0x62
xchg byte [0x2049182d], al
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x27f7a54f
add eax, dword [0x20492770]
cmp ecx, eax
je 0x20301e80
movzx eax, byte [0x20492774]
add al, 0x8d
xchg byte [0x2049182d], al
jmp 0x20301e41
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20301e80
mov eax, dword [0x204a6a70]
mov ecx, eax
sub ecx, dword [0x20492770]
imul ecx, eax
test cl, 1
jne 0x20301e80
lea rax, [0x20491820]
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov al, 0x90
xchg byte [0x204918fd], al
xor eax, eax
test al, al
je 0x20301edb
movzx eax, byte [0x20492774]
mov ecx, eax
xor cl, 0xbb
and al, 0x3b
add al, al
add al, cl
xchg byte [0x204918fd], al
jmp 0x20301eb3
lea rax, [0x204918f0]
jmp 0x20301eae