Function at 0x20401080
Capabilities:
Encode data using xor

Disassembly:
push rsi
mov eax, dword [0x205b86ac]
cmp eax, 0x33
jg 0x204010e0
mov eax, dword [0x205a5130]
mov r8d, eax
xor r8d, 0x27f7a550
and eax, 0x27f7a550
add eax, eax
mov r9d, r8d
xor r9d, eax
and eax, r8d
lea eax, [r9 + rax*2]
lea r8, [fcn.20401080]
add r8d, r8d
add r8d, 0x340
mov r9d, r8d
not r9d
mov r10d, r9d
and r10d, eax
not eax
and r8d, eax
or r8d, r10d
and eax, r9d
or eax, r8d
cmp eax, 0xffffffff
je 0x204010f6
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x204010f0
jmp 0x2040108c
test ecx, ecx
je 0x20401129
test edx, edx
je 0x20401159
movzx eax, byte [0x205a3f97]
cmp al, 0x29
je 0x20401388
mov cl, 0x59
nop
mov al, 0x97
lock cmpxchg byte [0x205a3f97], cl
je 0x204011d4
cmp al, 0x29
jne 0x20401110
jmp 0x20401388
test edx, edx
je 0x20401189
movzx eax, byte [0x205a4441]
cmp al, 0x92
je 0x2040126c
mov cl, 0xab
nop
mov al, 0x5e
lock cmpxchg byte [0x205a4441], cl
je 0x2040121e
cmp al, 0x92
jne 0x20401140
jmp 0x2040126c
movzx eax, byte [0x205a3e87]
cmp al, 0xe
je 0x204012b0
mov cl, 0x35
nop word [rax + rax]
mov al, 0x21
lock cmpxchg byte [0x205a3e87], cl
je 0x20401275
cmp al, 0xe
jne 0x20401170
jmp 0x204012b0
movzx eax, byte [0x205a3dbd]
movzx ecx, byte [0x205a5134]
add cl, 0xec
cmp al, cl
je 0x2040137f
nop word cs:[rax + rax]
movzx ecx, byte [0x205a5134]
lea eax, [rcx - 0x5f]
add cl, 9
lock cmpxchg byte [0x205a3dbd], cl
je 0x204012b9
cmp al, 0xc1
jne 0x204011b0
jmp 0x2040137f
xor edx, edx
lea rax, [0x205a3f60]
lea rcx, [0x2049aa20]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0x37
jl 0x204011f0
mov al, 1
test al, al
je 0x204013b9
jmp 0x20401391
xor edx, edx
lea rax, [0x205a4430]
lea rcx, [0x2049aef0]
nop
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x205a5130]
add edx, r8d
add edx, 0x27f7a550
cmp edx, 0x11
jl 0x20401230
mov eax, dword [0x205b86a8]
xor eax, eax
nop dword [rax]
test al, al
jne 0x20401260
mov al, 0x92
xchg byte [0x205a4441], al
lea rax, [0x205a4430]
pop rsi
ret
xor eax, eax
lea rcx, [0x205a3e80]
lea rdx, [0x2049a940]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 6
jg 0x204012a8
inc rax
jmp 0x20401290
mov al, 0xe
xchg byte [0x205a3e87], al
lea rax, [0x205a3e80]
pop rsi
ret
xor r8d, r8d
lea r9, [0x205a3da0]
lea r10, [0x2049a870]
mov r11d, 0x27f7a56c
jmp 0x204012f7
mov ecx, r8d
xor ecx, 1
and r8d, 1
lea r8d, [rcx + r8*2]
cmp r8d, eax
jge 0x20401377
mov eax, dword [0x205b86a8]
lea ecx, [rax - 1]
imul ecx, eax
movsxd rsi, r8d
test cl, 1
jne 0x20401330
nop dword [rax + rax]
movzx eax, byte [rsi + r10]
add byte [rsi + r9], al
mov eax, dword [0x205a5130]
add eax, r11d
mov ecx, dword [0x205b86ac]
cmp ecx, 0x31
jl 0x204012e0
nop dword [rax]
movzx eax, byte [rsi + r9]
movzx edx, byte [rsi + r10]
sub al, dl
mul dl
sub al, dl
mul dl
mov ecx, eax
sub al, dl
mul dl
mov edx, eax
sub cl, al
mov eax, ecx
mul dl
mov ecx, edx
shl al, cl
add al, dl
mov byte [rsi + r9], al
mov eax, dword [0x205a5130]
mov ecx, eax
xor ecx, 0x58085ab0
and ecx, eax
xor eax, 0x27f7a54f
add ecx, ecx
add ecx, eax
jne 0x20401330
jmp 0x20401310
mov al, 0xc1
xchg byte [0x205a3dbd], al
lea rax, [0x205a3da0]
pop rsi
ret
lea rax, [0x205a3f60]
pop rsi
ret
mov ecx, dword [0x205b86a8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x205a5130]
lea r8d, [rcx + 0x27f7a551]
xor edx, edx
div r8d
add ecx, 0x27f7a54f
cmp edx, ecx
je 0x204013f3
lea rax, [fcn.20401080]
add eax, eax
add eax, 0x1460
nop word [rax + rax]
mov ecx, dword [0x205a5130]
mov edx, ecx
xor edx, 0xdf0730ab
and ecx, 0x5f0730ab
lea ecx, [rdx + rcx*2]
add ecx, 0x48f074a5
test eax, ecx
jne 0x204013d0
jmp 0x20401391
mov eax, dword [0x205b86ac]
mov ecx, 0x27f7a587
add ecx, dword [0x205a5130]
cmp eax, ecx
jge 0x20401437
mov al, 0x29
xchg byte [0x205a3f97], al
mov eax, dword [0x205b86ac]
mov ecx, dword [0x205a5130]
mov edx, ecx
xor edx, 0x58085aa2
and edx, ecx
xor ecx, 0x27f7a55d
lea ecx, [rcx + rdx*2]
cmp eax, ecx
jl 0x20401388
mov eax, 0x27f7a54f
nop dword [rax]
mov cl, 0x29
xchg byte [0x205a3f97], cl
mov ecx, dword [0x205b86a8]
lea edx, [rcx + 0x240ff380]
not edx
add edx, 0x240ff380
imul edx, ecx
and edx, 1
mov ecx, dword [0x205a5130]
add ecx, eax
cmp edx, ecx
jne 0x20401440
jmp 0x20401408