Function at 0x201f7ef0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
mov r15d, dword [rsp + 0xa0]
mov r8d, r15d
not r8d
mov eax, r15d
or eax, 0xbbe02c93
mov r9d, eax
not r9d
mov r10d, r8d
and r10d, 0xbbe02c93
mov r11d, r15d
and r11d, 0x441fd36c
or r11d, r10d
mov r10d, r8d
and r10d, 0x441fd36c
or r10d, r11d
mov r11d, r10d
not r11d
and r10d, r9d
and r9d, r11d
and r11d, eax
or r10d, r11d
or r10d, r9d
add r10d, dword [0x2055b320]
cmp ecx, r10d
jne 0x201f7fa9
test edx, edx
je 0x201f8019
movzx eax, byte [0x2055a723]
mov ecx, r15d
xor cl, 0xa2
add cl, byte [0x2055b324]
cmp al, cl
je 0x201f81d8
mov cl, 0x85
nop dword [rax]
mov al, 0xb5
lock cmpxchg byte [0x2055a723], cl
je 0x201f812c
cmp al, 0x8c
jne 0x201f7f90
jmp 0x201f81d8
test edx, edx
je 0x201f8049
mov r12d, esi
not r12d
mov eax, r12d
and eax, 0x84413e41
mov ecx, esi
xor ecx, 0x7bbec1be
or ecx, eax
not ecx
or ecx, eax
mov eax, dword [0x2055b1c0]
add eax, esi
add eax, 0xf4e9
cdqe
add rax, qword [0x2055b1f8]
call qword [case.0x2010e313.0]
test al, 1
jne 0x201f82ce
mov cl, 0xe8
nop word cs:[rax + rax]
mov al, 0x14
lock cmpxchg byte [0x2055a740], cl
je 0x201f81e4
cmp al, 0xe6
jne 0x201f8000
jmp 0x201f82ce
movzx eax, byte [0x2055af3d]
cmp al, 0xfa
je 0x201f8399
mov cl, 0x4c
nop word [rax + rax]
mov al, 0x90
lock cmpxchg byte [0x2055af3d], cl
je 0x201f82da
cmp al, 0xfa
jne 0x201f8030
jmp 0x201f8399
movzx eax, byte [0x2055b10d]
cmp al, 0xf7
je 0x201f8120
movzx ecx, byte [0x2055b324]
mov edx, r15d
not dl
mov r8d, edx
and r8b, 0xe5
mov eax, r15d
and al, 0x1a
or al, r8b
add al, cl
and dl, 0x76
mov r8d, r15d
and r8b, 0x89
or r8b, dl
add r8b, cl
lock cmpxchg byte [0x2055b10d], r8b
jne 0x201f8050
xor eax, eax
lea r14, [0x2055b100]
xor r15d, 0x441ede73
sub r15d, esi
xor esi, 0x6094e7b3
lea rdi, [rsp + 0x30]
nop
movsxd rbx, eax
movzx ebp, byte [rbx + r14]
mov eax, dword [0x2055b1c4]
mov ecx, dword [0x2055b320]
add ecx, r15d
sub eax, ecx
cdqe
add rax, qword [0x2055b1d0]
mov rcx, rbx
mov rdx, rdi
mov r8d, esi
call qword [case.0x2010e313.0]
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov ecx, ebp
xor cl, al
and bpl, al
add bpl, bpl
add bpl, cl
mov byte [rbx + r14], bpl
mov eax, 0x5d03b882
sub eax, ebx
mov ecx, eax
xor ecx, 0xa2fc477d
and eax, 0x22fc477d
lea eax, [rcx + rax*2]
neg eax
cmp eax, 0xd
jl 0x201f80b0
mov al, 0xf7
xchg byte [0x2055b10d], al
lea rax, [0x2055b100]
jmp 0x201f83a0
xor edi, edi
mov r12d, r15d
xor r12d, 0xc17e22f6
mov ebp, r15d
xor ebp, 0x441ede73
lea rbx, [rsp + 0x2f]
lea r14, [rsp + 0x30]
mov eax, r8d
and eax, 0xbbe02c90
and r15d, 0x441fd36f
or r15d, eax
and r8d, 0x441fd36f
or r15d, r8d
not r15d
or r15d, r8d
nop dword [rax]
mov eax, dword [0x2055b320]
lea r9d, [r12 + rax]
add eax, ebp
mov ecx, esi
sub ecx, eax
add ecx, dword [0x2055b1b4]
xor r9d, esi
movsxd rax, ecx
add rax, qword [0x2055b1e0]
mov ecx, edi
mov rdx, rbx
mov r8, r14
call qword [case.0x2010e313.0]
movzx eax, byte [rsp + 0x2f]
mov rcx, qword [rsp + 0x30]
mov byte [rcx], al
mov eax, edi
xor eax, 0xdfa574ee
and edi, 0x5fa574ee
lea edi, [rax + rdi*2]
add edi, 0x205a8b13
mov eax, dword [0x2055b320]
add eax, r15d
cmp edi, eax
jl 0x201f8170
mov al, 0x8c
xchg byte [0x2055a723], al
lea rax, [0x2055a720]
jmp 0x201f83a0
xor edi, edi
mov eax, esi
and eax, 0x8eb51a05
mov ecx, r12d
and ecx, 0x714ae5fa
or ecx, eax
mov eax, esi
and eax, 0x714ae5fa
or ecx, eax
not ecx
mov edx, r12d
and edx, 0x8eb51a05
or edx, eax
mov ebx, edx
not ebx
xor edx, esi
and ebx, r12d
or ebx, edx
not ebx
or ebx, ecx
xor r15d, 0x441fd36c
lea r14, [rsp + 0x30]
and r12d, 0x63037af0
mov ebp, esi
and ebp, 0x9cfc850f
or ebp, r12d
lea r12, [0x20474fa0]
lea r13, [0x2055a730]
nop dword [rax]
mov eax, dword [0x2055b1bc]
add eax, esi
add eax, dword [0x2055b320]
add eax, r15d
add eax, 0xf4e9
cdqe
add rax, qword [0x2055b1d8]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
call qword [case.0x2010e313.0]
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x2055b1b8]
add eax, esi
add eax, 0xf4e9
cdqe
add rax, qword [0x2055b1f0]
mov rdx, r14
mov r8d, ebp
call qword [case.0x2010e313.0]
movzx eax, byte [rdi + r12]
mov ecx, eax
xor cl, al
not cl
and cl, byte [rsp + 0x30]
xor cl, al
mov byte [rdi + r13], cl
lea eax, [rdi + 1]
cmp eax, 0xf
jg 0x201f82c6
inc rdi
jmp 0x201f8250
mov al, 0xe6
xchg byte [0x2055a740], al
lea rax, [0x2055a730]
jmp 0x201f83a0
xor ecx, ecx
lea rdi, [0x2055af30]
lea rbx, [0x20475770]
mov eax, esi
not eax
and eax, 0x3586007b
mov ebp, esi
xor ebp, 0xca79ff84
or ebp, eax
not ebp
or ebp, eax
mov eax, 0x32f9eee8
sub eax, esi
mov edx, eax
xor edx, 0xc197b8ac
and eax, 0x4197b8ac
lea r14d, [rdx + rax*2]
neg r14d
lea rsi, [rsp + 0x30]
nop word cs:[rax + rax]
movsxd rcx, ecx
movzx edx, byte [rcx + rdi]
movzx eax, byte [rcx + rbx]
mov r8d, eax
not r8b
mov r9d, edx
and r9b, r8b
xor r8b, dl
not dl
mov r10d, edx
xor r10b, al
or r9b, r10b
not r9b
and dl, al
or dl, r8b
not dl
or dl, r9b
mov eax, dword [0x2055b1b0]
add eax, r14d
add eax, 0xf4929c7d
cdqe
add rax, qword [0x2055b1e8]
mov dword [rsp + 0x20], ebp
mov r8d, ecx
mov r9, rsi
call qword [case.0x2010e313.0]
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x201f8330
mov al, 0xfa
xchg byte [0x2055af3d], al
lea rax, [0x2055af30]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret