Function at 0x20301300
Capabilities:
Encode data using xor

Disassembly:
push rsi
test ecx, ecx
je 0x2030139f
xor eax, eax
mov ecx, 0x27f7a54f
test al, al
jne 0x20301333
mov r8d, dword [0x20492770]
add r8d, ecx
mov r9d, dword [0x204a6a70]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x20301357
mov r8d, dword [0x204a6a70]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x20492770]
add r8d, ecx
cmp r9d, r8d
jne 0x20301310
jmp 0x20301314
cmp edx, r8d
jne 0x203013c1
cmp byte [0x204919bd], 0
je 0x20301694
mov cl, 0xc5
nop dword [rax + rax]
mov al, 0x3c
lock cmpxchg byte [0x204919bd], cl
je 0x20301489
movzx edx, byte [0x20492774]
mov r8d, edx
xor r8b, 0x2b
and dl, 0x2b
add dl, dl
add dl, r8b
cmp al, dl
jne 0x20301370
jmp 0x20301694
test edx, edx
je 0x203013f9
mov eax, dword [0x204a6a74]
mov ecx, 0x27f7a5a7
add ecx, dword [0x20492770]
cmp eax, ecx
jl 0x203015b9
jmp 0x203015d1
movzx eax, byte [0x20491c5f]
cmp al, 0x28
je 0x20301570
mov cl, 0x87
nop word cs:[rax + rax]
mov al, 0x86
lock cmpxchg byte [0x20491c5f], cl
je 0x2030153a
cmp al, 0x28
jne 0x203013e0
jmp 0x20301570
movzx eax, byte [0x204919ef]
cmp al, 0xb6
je 0x203015b0
mov cl, 0xa5
lea rdx, [fcn.20301300]
lea r8d, [rdx + rdx]
add r8d, 0xf60
mov r9d, r8d
not r9d
mov r10d, 0x27f7a550
jmp 0x20301438
cmp al, 0xb6
je 0x203015b0
mov al, 0xf0
lock cmpxchg byte [0x204919ef], cl
je 0x20301579
nop dword [rax + rax]
test r9d, r8d
jne 0x20301472
mov r11d, dword [0x20492770]
add r11d, r10d
lea esi, [rdx + rdx]
add esi, 0x360
xor esi, r11d
not esi
test esi, r11d
je 0x20301430
mov r11d, dword [0x204a6a70]
lea esi, [r11 - 1]
imul esi, r11d
test sil, 1
jne 0x20301450
jmp 0x20301455
xor edx, edx
lea rax, [0x204919b0]
lea rcx, [0x203a2790]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x20492770]
add edx, r8d
add edx, 0x27f7a550
cmp edx, 0xd
jl 0x203014a0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x203014f2
mov ecx, dword [0x204a6a70]
mov edx, dword [0x20492770]
neg edx
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
je 0x20301510
mov ecx, dword [0x204a6a70]
mov edx, dword [0x20492770]
add edx, ecx
add edx, 0xd8085ab0
imul edx, ecx
test dl, 1
jne 0x203014d0
jmp 0x203014d4
mov eax, dword [0x204a6a74]
mov ecx, dword [0x20492770]
mov edx, ecx
xor edx, 0x27f7a563
and ecx, 0x27f7a563
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jl 0x2030165d
jmp 0x20301683
xor eax, eax
lea rcx, [0x20491c50]
lea rdx, [0x203a2a30]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x20301568
inc rax
jmp 0x20301550
mov al, 0x28
xchg byte [0x20491c5f], al
lea rax, [0x20491c50]
pop rsi
ret
xor eax, eax
lea rcx, [0x204919e0]
lea rdx, [0x203a27c0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x203015a8
inc rax
jmp 0x20301590
mov al, 0xb6
xchg byte [0x204919ef], al
lea rax, [0x204919e0]
pop rsi
ret
movzx eax, byte [0x20491a3a]
mov ecx, dword [0x204a6a70]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x203015da
movzx eax, byte [0x20491a3a]
jmp 0x203015b9
cmp al, 0x1e
je 0x20301630
mov cl, 0xe7
mov al, 0x70
lock cmpxchg byte [0x20491a3a], cl
je 0x203015f2
cmp al, 0x1e
jne 0x203015e0
jmp 0x20301630
xor eax, eax
lea rcx, [0x20491a30]
lea rdx, [0x203a2810]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 9
jg 0x20301628
inc rax
jmp 0x20301610
mov al, 0x1e
xchg byte [0x20491a3a], al
lea rax, [fcn.20301300]
add eax, eax
add eax, 0x3980
mov ecx, eax
not ecx
nop word cs:[rax + rax]
test ecx, eax
jne 0x20301650
lea rax, [0x20491a30]
pop rsi
ret
xor eax, eax
xchg byte [0x204919bd], 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 0x20301694
movzx eax, byte [0x20492774]
add al, 0x2b
xchg byte [0x204919bd], al
jmp 0x2030165d
lea rax, [0x204919b0]
pop rsi
ret