Function at 0x20304d40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test ecx, ecx
je 0x20304e6d
test edx, edx
je 0x20304f7e
mov eax, 0x2899cc02
nop word cs:[rax + rax]
mov ecx, dword [0x204a6a70]
mov edx, dword [0x20492770]
add edx, eax
not edx
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
jne 0x20304da9
movzx ecx, byte [0x204918bd]
mov edx, dword [0x204a6a70]
mov r8d, edx
not r8d
imul r8d, edx
test r8b, 1
je 0x20304dbd
movzx ecx, byte [0x204918bd]
mov ecx, dword [0x204a6a74]
cmp ecx, 0x2a
jge 0x20304d70
jmp 0x20304d8c
cmp cl, 0xdf
je 0x203053d5
xor r8d, r8d
mov r9b, 0xcd
mov r10d, 0x27f7a585
mov r11d, 0x27f7a551
jmp 0x20304de9
cmp cl, 0xdf
je 0x203053d5
test r8b, r8b
jne 0x20304e30
nop
mov al, 0x30
lock cmpxchg byte [0x204918bd], r9b
mov ecx, eax
sete al
mov edx, dword [0x204a6a74]
mov esi, dword [0x20492770]
add esi, r10d
cmp edx, esi
jge 0x20304e30
test al, al
jne 0x20304fd9
test r8b, r8b
jne 0x20304e60
jmp 0x20304e40
mov al, 0x30
lock cmpxchg byte [0x204918bd], r9b
jmp 0x20304df0
mov edx, dword [0x204a6a70]
lea eax, [rdx - 1]
imul eax, edx
mov esi, dword [0x20492770]
add esi, r11d
xor edx, edx
div esi
test edx, edx
je 0x20304de0
nop dword [rax]
mov eax, dword [0x204a6a74]
cmp eax, 0xd
jge 0x20304e60
jmp 0x20304e40
test edx, edx
je 0x20304fa5
movzx eax, byte [0x204a6a20]
cmp al, 0x6b
je 0x20304f72
mov cl, 0xd3
nop word cs:[rax + rax]
mov eax, dword [0x204a6a74]
cmp eax, 0x25
jg 0x20304ed0
nop dword [rax + rax]
xor eax, eax
lock cmpxchg byte [0x204a6a20], cl
sete dl
mov r8d, dword [0x204a6a70]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x20304ef0
nop word cs:[rax + rax]
xor eax, eax
lock cmpxchg byte [0x204a6a20], cl
mov eax, dword [0x204a6a70]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x20304ed0
jmp 0x20304ea0
test dl, dl
jne 0x20304f00
cmp al, 0x6b
jne 0x20304e90
jmp 0x20304f72
mov eax, dword [0x204a6a74]
cmp eax, 0x31
jle 0x20304f16
mov eax, dword [0x204a6a74]
cmp eax, 0x21
jge 0x20304f00
mov eax, dword [0x204a6a74]
cmp eax, 0x34
jg 0x20304f0b
xor edx, edx
lea rax, [0x20491830]
lea rcx, [0x203a2610]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
add edx, edx
and edx, 2
mov r9d, r8d
xor r9d, edx
and edx, r8d
lea edx, [r9 + rdx*2]
cmp edx, 0xd
jl 0x20304f40
mov al, 0x6b
xchg byte [0x204a6a20], al
lea rax, [0x20491830]
jmp 0x203050b8
mov eax, 0x27f7a550
add eax, dword [0x20492770]
lea rcx, [fcn.20304d40]
add ecx, ecx
add ecx, 0x640
test ecx, eax
jne 0x2030520d
jmp 0x20305200
movzx eax, byte [0x20491408]
cmp al, 4
je 0x203050b1
mov cl, 0xd6
nop word cs:[rax + rax]
mov al, 0x30
lock cmpxchg byte [0x20491408], cl
je 0x2030509a
cmp al, 4
jne 0x20304fc0
jmp 0x203050b1
xor edi, edi
lea rbx, [0x204918b0]
lea r14, [0x203a2690]
lea rsi, [0x20307030]
jmp 0x20305010
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [rax + rdi*2]
cmp edi, 0xd
jge 0x20305080
mov eax, dword [0x204a6a74]
movsxd r15, edi
cmp eax, 0x44
jg 0x20305046
nop
movzx eax, byte [r15 + rbx]
movzx ecx, byte [r15 + r14]
not cl
mov edx, ecx
or dl, al
not dl
and cl, al
or cl, dl
mov byte [r15 + rbx], cl
cmp dword [0x20492770], 0xd8085ab1
je 0x20305000
mov ecx, 0x28
call fcn.2030c544
mov qword [0x204a6a38], rax
mov rcx, rsi
call fcn.2032c150
movzx ecx, byte [r15 + r14]
mov eax, ecx
sub al, byte [r15 + rbx]
mul cl
mul cl
not cl
mov edx, ecx
or dl, al
not dl
and cl, al
or cl, dl
mov byte [r15 + rbx], cl
jmp 0x20305020
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203053c0
jmp 0x203053b2
mov eax, dword [0x204a6a74]
mov ecx, 0x27f7a584
add ecx, dword [0x20492770]
cmp eax, ecx
jl 0x203050c5
jmp 0x203050cb
lea rax, [0x20491400]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov al, 1
test al, al
jne 0x203050ed
mov eax, 0x27f7a54f
mov ecx, dword [0x204a6a70]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x20492770]
add ecx, eax
cmp edx, ecx
jne 0x203050d0
jmp 0x203050c5
xor edi, edi
lea r14, [0x20491400]
lea r15, [0x203a21f0]
lea rax, [fcn.20304d40]
lea ebp, [rax + rax]
add ebp, 0x660
not ebp
lea rsi, [0x20307010]
nop word cs:[rax + rax]
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20305190
nop word cs:[rax + rax]
movzx eax, byte [rdi + r15]
add byte [rdi + r14], al
mov eax, dword [0x20492770]
lea ecx, [rax + 0x27f7a550]
not ecx
mov edx, ebp
xor edx, ecx
and edx, ebp
or edx, ecx
not edx
mov ecx, eax
xor ecx, 0x27f7a54f
and eax, 0x27f7a54f
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x20305190
lea eax, [rdi + 1]
cmp eax, 7
jg 0x203051f3
inc rdi
jmp 0x20305120
movzx ebx, byte [rdi + r14]
mov ecx, 0x3f
call fcn.2030c544
mov qword [0x204a6a30], rax
mov rcx, rsi
call fcn.2032c150
movzx ecx, byte [rdi + r15]
sub bl, cl
mov eax, ebx
mul cl
sub al, cl
mul cl
mov r8d, eax
sub al, cl
mul cl
mov edx, eax
mov eax, r8d
sub al, dl
mul dl
mov ecx, r8d
neg cl
mov edx, ecx
xor dl, al
and cl, al
add cl, cl
add cl, dl
sub r8b, cl
mov eax, r8d
mul cl
sub al, cl
shl al, cl
sub cl, al
mov byte [rdi + r14], cl
jmp 0x20305140
mov al, 4
xchg byte [0x20491408], al
jmp 0x203050b1
movzx eax, byte [0x2049192d]
xor ecx, ecx
test cl, cl
je 0x20305216
movzx eax, byte [0x2049192d]
jmp 0x20305200
cmp al, 0x8e
je 0x2030535a
mov cl, 0xa9
mov al, 0x32
lock cmpxchg byte [0x2049192d], cl
je 0x20305235
cmp al, 0x8e
jne 0x20305220
jmp 0x2030535a
mov eax, dword [0x204a6a70]
nop dword [rax + rax]
mov eax, dword [0x204a6a70]
mov ecx, eax
sub ecx, dword [0x20492770]
imul ecx, eax
test cl, 1
jne 0x20305240
xor r8d, r8d
lea r9, [0x20491920]
lea r10, [0x203a2700]
jmp 0x20305296
add r8d, 0x51a11f8f
mov eax, r8d
xor eax, 1
and r8d, 1
lea r8d, [rax + r8*2]
add r8d, 0xae5ee071
cmp r8d, 0xd
jge 0x20305352
mov eax, dword [0x204a6a74]
movsxd r11, r8d
cmp eax, 0x41
jg 0x203052f0
nop word cs:[rax + rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
mov edx, ecx
not dl
mov ebx, eax
and bl, dl
xor dl, al
not al
mov esi, eax
xor sil, cl
or bl, sil
not bl
and al, cl
or al, dl
not al
or al, bl
mov byte [r11 + r9], al
mov eax, dword [0x204a6a70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x20305270
nop dword [rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
shl al, cl
mul cl
mov edx, eax
xor dl, cl
mov ebx, edx
not bl
and bl, al
add bl, bl
add bl, dl
movzx edx, byte [0x20492774]
sub dl, bl
add dl, cl
add dl, 0x2b
mov eax, edx
shl al, cl
mov ebx, edx
mov ecx, eax
shl bl, cl
mov eax, edx
sub al, bl
mul bl
mov ecx, eax
sub dl, al
mov eax, edx
mul cl
xor al, cl
mov byte [r11 + r9], al
mov eax, dword [0x204a6a70]
mov ecx, 0xd2212249
sub ecx, eax
imul ecx, eax
test cl, 1
jne 0x203052f0
jmp 0x203052b0
mov al, 0x8e
xchg byte [0x2049192d], al
mov eax, 0x27f7a550
add eax, dword [0x20492770]
lea rcx, [fcn.20304d40]
add ecx, ecx
add ecx, 0xac0
mov edx, ecx
not edx
xor ecx, eax
not eax
and eax, edx
or eax, ecx
cmp eax, 0xffffffff
jne 0x20305390
mov eax, dword [0x204a6a74]
cmp eax, 0x35
jl 0x203053a6
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x203053a0
jmp 0x20305385
lea rax, [0x20491920]
jmp 0x203050b8
mov eax, dword [0x204a6a74]
cmp eax, 0x29
jl 0x203053cd
nop dword [rax]
mov eax, dword [0x204a6a74]
cmp eax, 0x26
jge 0x203053c0
jmp 0x203053b2
mov al, 0xdf
xchg byte [0x204918bd], al
lea rax, [0x204918b0]
jmp 0x203050b8