Function at 0x20305c00
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x27f7a550
add eax, dword [0x20492770]
lea r8, [fcn.20305c00]
add r8d, r8d
add r8d, 0x4420
test r8d, eax
jne 0x20305c30
mov al, 1
test al, al
jne 0x20305c3d
nop word [rax + rax]
mov eax, dword [0x204a6a74]
cmp eax, 0x27
jge 0x20305c30
jmp 0x20305c21
test ecx, ecx
je 0x20305c79
test edx, edx
je 0x20305cac
movzx eax, byte [0x20491bdd]
movzx ecx, byte [0x20492774]
add cl, 0x25
cmp al, cl
je 0x20305f8e
mov cl, 0x97
mov al, 0xf8
lock cmpxchg byte [0x20491bdd], cl
je 0x20305d3c
cmp al, 0xfa
jne 0x20305c60
jmp 0x20305f8e
test edx, edx
je 0x20305d08
movzx eax, byte [0x20491a9d]
cmp al, 0xd3
je 0x20305ca4
mov cl, 0x2e
nop
mov al, 0x92
lock cmpxchg byte [0x20491a9d], cl
je 0x20305dad
cmp al, 0xd3
jne 0x20305c90
lea rax, [0x20491a90]
ret
movzx eax, byte [0x204919ac]
cmp al, 0xdd
je 0x20305e70
mov cl, 0xd2
xor edx, edx
mov r8b, 1
jmp 0x20305cd8
cmp al, 0xdd
je 0x20305e70
mov al, 0x31
lock cmpxchg byte [0x204919ac], cl
je 0x20305e2b
nop dword [rax + rax]
test dl, dl
jne 0x20305d01
mov r9d, dword [0x204a6a74]
cmp r9d, 0x2f
jle 0x20305cd0
test r8b, r8b
je 0x20305cf0
jmp 0x20305cf4
movzx eax, byte [0x2049181c]
cmp al, 1
je 0x20305d34
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x2c
lock cmpxchg byte [0x2049181c], cl
je 0x20305e78
cmp al, 1
jne 0x20305d20
lea rax, [0x20491810]
ret
mov eax, dword [0x204a6a74]
nop word cs:[rax + rax]
mov eax, dword [0x204a6a74]
cmp eax, 0xe
jg 0x20305d50
xor eax, eax
lea rcx, [0x20491bd0]
lea rdx, [0x203a29b0]
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 0x20305d98
inc rax
jmp 0x20305d70
cmp dword [0x20492770], 0xd8085ab1
jne 0x20305f50
jmp 0x20305f21
xor edx, edx
lea rax, [0x20491a90]
lea rcx, [0x203a2870]
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 [0x20492770]
add edx, r8d
add edx, 0x27f7a550
add r8d, 0x27f7a55c
cmp edx, r8d
jl 0x20305dc0
mov eax, dword [0x204a6a74]
nop word cs:[rax + rax]
mov eax, dword [0x204a6a74]
cmp eax, 0x43
jg 0x20305e10
mov al, 0xd3
xchg byte [0x20491a9d], al
lea rax, [0x20491a90]
ret
xor eax, eax
lea rcx, [0x204919a0]
lea rdx, [0x203a2780]
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 0x20305e68
inc rax
jmp 0x20305e40
mov al, 0xdd
xchg byte [0x204919ac], al
lea rax, [0x204919a0]
ret
xor eax, eax
lea rcx, [0x20491810]
lea rdx, [0x203a25f0]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xb
jg 0x20305ea8
inc rax
jmp 0x20305e90
mov eax, dword [0x204a6a74]
nop
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20305eb0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x20305ef9
movzx ecx, byte [0x20492774]
add cl, 0x2c
xchg byte [0x2049181c], cl
mov ecx, dword [0x204a6a70]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x20305d34
mov cl, 1
xchg byte [0x2049181c], cl
mov ecx, dword [0x204a6a70]
mov edx, dword [0x20492770]
neg edx
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
jne 0x20305ed0
jmp 0x20305ed4
mov eax, dword [0x204a6a74]
mov ecx, dword [0x20492770]
mov edx, ecx
xor edx, 0x27f7a56d
and ecx, 0x27f7a56d
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x20305f63
nop word cs:[rax + rax]
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20305f50
jmp 0x20305f21
mov al, 0xfa
xchg byte [0x20491bdd], al
jmp 0x20305f8e
mov eax, dword [0x204a6a70]
mov ecx, dword [0x20492770]
neg ecx
add ecx, eax
add ecx, 0xd8085ab0
imul ecx, eax
test cl, 1
je 0x20305f9a
cmp dword [0x20492770], 0xd8085ab1
jne 0x20305f70
mov eax, dword [0x204a6a74]
cmp eax, 0x40
jg 0x20305f70
lea rax, [0x20491bd0]
ret