Function at 0x201ad140
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov ebp, r9d
mov eax, edx
mov edi, dword [rsp + 0xc0]
test ecx, ecx
je 0x201ad258
mov ecx, ebp
xor ecx, 0x91f3d1e6
mov r12d, ebp
not r12d
mov edx, r12d
and edx, ebp
xor edx, ecx
mov ecx, dword [0x205530d8]
mov r13d, edi
not r13d
mov r8d, edi
xor r8d, 0x92327e4
mov r9d, r13d
and r9d, 0xf6dcd81b
or r8d, r9d
not r8d
or r8d, r9d
mov r9d, r8d
not r9d
mov r10d, ecx
not r10d
mov r11d, r9d
xor r11d, ecx
mov esi, r8d
and esi, r10d
or esi, r11d
not esi
xor r10d, r8d
and r9d, ecx
or r9d, r10d
not r9d
or r9d, esi
and r8d, ecx
lea ecx, [r9 + r8*2]
mov r8d, r13d
xor r8d, edi
and r8d, ecx
xor r8d, edi
mov ecx, eax
call fcn.2008e940
test al, 1
je 0x201ad328
movzx eax, byte [0x20552ae3]
cmp al, 0xb4
je 0x201ad5a3
mov r13d, ebp
mov eax, r12d
and eax, 0x4dd83310
mov ebx, ebp
and ebx, 0xb227ccef
and r12d, ebx
or ebx, eax
or ebx, r12d
mov ebp, edi
xor ebp, 0xfb151647
lea r14, [rsp + 0x40]
lea r15, [rsp + 0x3b]
nop dword [rax]
mov rcx, r14
mov rdx, r15
mov r8d, ebx
mov r9d, ebp
call fcn.201ad0d0
cmp byte [rsp + 0x41], 0
jne 0x201ad419
cmp byte [rsp + 0x3b], 0xb4
jne 0x201ad230
jmp 0x201ad5a3
mov edx, ebp
xor edx, 0xa08e2185
mov ecx, edi
xor ecx, 0x308c45b6
add ecx, dword [0x205530d8]
mov esi, edi
not esi
mov r9d, ecx
not r9d
and r9d, edi
mov r8d, esi
xor r8d, ecx
or r9d, r8d
not r9d
and r8d, ecx
or r8d, esi
not r8d
or r8d, r9d
mov ecx, eax
call fcn.2008e940
test al, 1
je 0x201ad3c4
movzx eax, byte [0x20552a8f]
mov ecx, edi
not cl
mov edx, ecx
and dl, 0x56
mov r8d, ecx
and r8b, 0xa9
mov r9d, edi
and r9b, 0x56
or r9b, r8b
or r9b, dl
not r9b
xor cl, r9b
not cl
and cl, dl
xor r9b, dl
or r9b, cl
add r9b, byte [0x205530dc]
cmp al, r9b
je 0x201ad674
mov cl, 0xf
nop dword [rax + rax]
mov al, 0xc4
lock cmpxchg byte [0x20552a8f], cl
je 0x201ad5c3
mov edx, edi
not dl
and dl, 0x56
mov r8d, edi
xor r8b, 0xa9
or r8b, dl
not r8b
or r8b, dl
add r8b, byte [0x205530dc]
cmp al, r8b
jne 0x201ad2f0
jmp 0x201ad674
movzx eax, byte [0x20552acd]
cmp al, 0xa5
je 0x201ad5b7
mov sil, 0x17
mov ebx, ebp
xor ebx, 0x3def92ab
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x20552acd], sil
je 0x201ad47a
mov ecx, dword [0x205530d8]
mov edx, edi
xor edx, 0x2058f894
mov r8d, edi
xor r8d, 0xdfa7076b
mov r9d, ecx
xor r9d, r8d
xor r8d, edx
and r8d, ecx
xor r8d, edx
and r9d, ecx
add r9d, r9d
mov ecx, r8d
xor ecx, r9d
and r9d, r8d
lea ecx, [rcx + r9*2]
mov edx, r13d
xor edx, ecx
not edx
and edx, ecx
not ecx
mov r8d, ecx
xor r8d, r13d
and r8d, ecx
or r8d, edx
mov ecx, eax
mov edx, ebx
call fcn.201ad0c0
test al, 1
je 0x201ad350
jmp 0x201ad5b7
movzx eax, byte [0x20552a43]
mov ecx, edi
not cl
mov edx, ecx
and dl, 7
mov r8d, edi
and r8b, 0xf8
or r8b, dl
and cl, 0xf8
or r8b, cl
not r8b
or r8b, cl
add r8b, byte [0x205530dc]
cmp al, r8b
je 0x201ad77d
mov cl, 2
nop dword [rax]
mov al, 0xef
lock cmpxchg byte [0x20552a43], cl
je 0x201ad680
cmp al, 0xaa
jne 0x201ad400
jmp 0x201ad77d
xor ebx, ebx
lea rsi, [0x20552ad0]
lea r14, [0x20472960]
mov ebp, r13d
xor ebp, 0xfcd79135
xor edi, 0x8a48624f
nop dword [rax + rax]
movzx eax, byte [rbx + rsi]
movzx edx, byte [rbx + r14]
mov ecx, edx
not cl
xor dl, cl
and dl, al
xor dl, cl
and cl, al
or dl, cl
not dl
or dl, cl
mov rcx, rbx
mov r8d, ebp
mov r9d, edi
call fcn.201ad9a0
lea eax, [rbx + 1]
cmp eax, 0x12
jg 0x201ad59b
inc rbx
jmp 0x201ad440
xor ebx, ebx
mov eax, r12d
and eax, 0x2f917e4
mov ecx, ebp
xor ecx, 0x2f917e4
and ecx, ebp
or ecx, eax
mov dword [rsp + 0x3c], ecx
mov eax, r13d
and eax, 0x8b787d6e
mov r14d, edi
and r14d, 0x74878291
or r14d, eax
and r12d, 0xbc8719ea
and ebp, 0x4378e615
or ebp, r12d
mov dword [rsp + 0x4c], ebp
and r13d, 0xe2e4a865
mov eax, edi
and eax, 0x1d1b579a
lea ecx, [rax + r13]
lea r12d, [rax + r13]
add r12d, 0x8fda7665
mov r13d, 0x7025899a
sub r13d, ecx
nop word cs:[rax + rax]
mov ecx, ebx
lea rbp, [rsp + 0x40]
mov rdx, rbp
mov r8d, dword [rsp + 0x3c]
mov r9d, r14d
call fcn.20135500
mov rax, qword [rsp + 0x40]
lea r15, [0x20552ac0]
movzx eax, byte [rax + r15]
lea rcx, [0x20472950]
movzx ecx, byte [rbx + rcx]
mov esi, eax
not sil
mov edx, ecx
not dl
mov r8d, esi
xor r8b, dl
mov r9d, esi
xor r9b, cl
and r8b, dl
or r8b, r9b
not r8b
and cl, sil
and dl, al
or dl, cl
xor sil, dl
and sil, dl
or sil, r8b
mov eax, dword [0x205530d8]
mov ecx, r13d
xor ecx, r12d
and ecx, eax
xor ecx, r12d
and eax, r12d
lea r9d, [rcx + rax*2]
add r9d, 0x7025899b
xor r9d, edi
mov ecx, ebx
mov rdx, rbp
mov r8d, dword [rsp + 0x4c]
call fcn.20135500
mov rax, qword [rsp + 0x40]
mov byte [rax + r15], sil
lea eax, [rbx + 1]
cmp eax, 0xc
jg 0x201ad5af
inc rbx
jmp 0x201ad4f0
mov al, 0xb4
xchg byte [0x20552ae3], al
lea rax, [0x20552ad0]
jmp 0x201ad784
mov al, 0xa5
xchg byte [0x20552acd], al
lea rax, [0x20552ac0]
jmp 0x201ad784
mov dword [rsp + 0x3c], esi
xor eax, eax
lea rsi, [0x20552a80]
mov r13d, ebp
mov ebx, ebp
xor ebx, 0xa9288fcf
mov ebp, edi
xor ebp, 0x280454f5
lea r14, [rsp + 0x40]
lea r15, [0x20472910]
nop
movsxd r12, eax
lea rcx, [rsi + r12]
mov rdx, r14
mov r8d, ebx
mov r9d, ebp
call fcn.201294f0
movzx eax, byte [rsp + 0x40]
movzx ecx, byte [r12 + r15]
mov edx, eax
not dl
not cl
mov r8d, edx
xor r8b, cl
and r8b, dl
and cl, al
or cl, r8b
mov byte [r12 + rsi], cl
mov eax, r12d
not eax
mov ecx, eax
and ecx, 1
mov edx, r12d
and edx, 0xfffffffe
or edx, ecx
xor r12d, 1
and eax, 0x7ffffffe
or eax, r12d
not eax
lea eax, [rdx + rax*2]
cmp eax, 0xf
jl 0x201ad5f0
mov ecx, r13d
xor ecx, 0x33574d3
xor edi, 0x70ba9b16
mov eax, dword [rsp + 0x3c]
and eax, 0x8f4564e9
or edi, eax
not edi
or edi, eax
mov edx, edi
call fcn.201ad9b0
lea rax, [0x20552a80]
jmp 0x201ad784
xor ecx, ecx
mov r13d, edi
xor r13d, 0x45f43c8e
mov eax, esi
and eax, 0xdf925050
mov r12d, edi
xor r12d, 0x206dafaf
or r12d, eax
mov dword [rsp + 0x4c], r12d
not r12d
mov dword [rsp + 0x3c], eax
and eax, r12d
mov dword [rsp + 0x54], eax
mov eax, ebp
not eax
and eax, 0x260bb4f1
mov edx, ebp
xor edx, 0xd9f44b0e
or edx, eax
not edx
or edx, eax
mov dword [rsp + 0x50], edx
and esi, 0x4c47a31b
mov r15d, edi
xor r15d, 0xb3b85ce4
or r15d, esi
not r15d
or r15d, esi
mov esi, ebp
nop dword [rax]
movsxd r14, ecx
lea rax, [0x20552a40]
movzx ebp, byte [r14 + rax]
lea rax, [0x204728d0]
lea rcx, [rax + r14]
mov eax, dword [0x205530d8]
mov edx, r13d
xor edx, eax
and eax, r13d
lea r8d, [rdx + rax*2]
xor r8d, esi
mov r9d, dword [rsp + 0x4c]
xor r9d, r12d
and r9d, dword [rsp + 0x3c]
xor r9d, r12d
or r9d, dword [rsp + 0x54]
lea rbx, [rsp + 0x40]
mov rdx, rbx
call fcn.201294f0
movzx edx, byte [rsp + 0x40]
mov dword [rsp + 0x28], r15d
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
mov ecx, ebp
mov r8d, r14d
mov r9, rbx
call fcn.201ad090
mov ecx, dword [rsp + 0x40]
test al, 1
je 0x201ad6f0
xor esi, 0x65b03489
xor edi, 0xf6dc05b5
mov ecx, esi
mov edx, edi
call fcn.201ad130
lea rax, [0x20552a40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret