Function at 0x14021b450
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 r8d, edx
mov r15d, dword [rsp + 0xa0]
mov edx, r9d
test ecx, ecx
je 0x14021b561
xor edx, 0x24574310
mov eax, dword [0x1404efdbc]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efe28]
mov ecx, r8d
call qword [case.0x1401138cb.0]
test al, 1
je 0x14021b635
movzx eax, byte [0x140532452]
cmp al, 0xe9
je 0x14021b7c9
mov edi, esi
xor edi, 0x8095c03d
lea rbx, [rsp + 0x30]
mov ebp, esi
xor ebp, 0xaec1d4bc
mov r12d, r15d
xor r12d, 0x7a82ead1
mov r13d, r15d
xor r13d, 0x7a82200a
nop
mov eax, dword [0x1404efdc0]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efe10]
mov rcx, rbx
mov edx, edi
call qword [case.0x1401138cb.0]
movzx ecx, byte [rsp + 0x30]
movzx r14d, byte [rsp + 0x31]
mov eax, dword [0x1404f1418]
lea edx, [r12 + rax]
add eax, r13d
mov r8d, esi
sub r8d, edx
add r8d, dword [0x1404efdb4]
add r8d, eax
movsxd rax, r8d
add rax, qword [0x1404efe00]
mov edx, r14d
mov r8, rbx
mov r9d, ebp
call qword [case.0x1401138cb.0]
test r14b, r14b
jne 0x14021b6e9
mov eax, r15d
xor al, 0x66
add al, byte [0x1404f1428]
cmp byte [rsp + 0x30], al
jne 0x14021b4e0
jmp 0x14021b7c9
mov eax, r15d
xor eax, 0x7a82ead1
add eax, dword [0x1404f1418]
mov ecx, esi
sub ecx, eax
add ecx, dword [0x1404efdb0]
xor edx, 0x104987dc
movsxd rax, ecx
add rax, qword [0x1404efdf8]
mov ecx, r8d
call qword [case.0x1401138cb.0]
test al, 1
je 0x14021b669
movzx ecx, byte [0x1404ef5ea]
mov eax, dword [0x1404f1418]
mov r8d, r15d
not r8d
mov r9d, r8d
and r9d, 0x82ba170c
mov edx, r15d
and edx, 0x7d45e8f3
or edx, r9d
add edx, eax
and r8d, 0x7a82ead1
mov r9d, r15d
and r9d, 0x857d152e
or r9d, r8d
add r9d, eax
mov eax, esi
sub eax, r9d
add eax, dword [0x1404efdc4]
xor edx, esi
cdqe
add rax, qword [0x1404efe20]
call qword [case.0x1401138cb.0]
test al, 1
jne 0x14021b865
mov cl, 0x1e
nop word cs:[rax + rax]
mov al, 0x56
lock cmpxchg byte [0x1404ef5ea], cl
je 0x14021b7e9
mov edx, r15d
xor dl, 0xd2
add dl, byte [0x1404f1428]
cmp al, dl
jne 0x14021b610
jmp 0x14021b865
movzx eax, byte [0x1404ef80d]
cmp al, 0x94
je 0x14021b7dd
mov cl, 0x45
nop word cs:[rax + rax]
mov al, 0x53
lock cmpxchg byte [0x1404ef80d], cl
je 0x14021b784
cmp al, 0x94
jne 0x14021b650
jmp 0x14021b7dd
mov edx, esi
xor edx, 0x7838ed4f
mov eax, dword [0x1404efdb8]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efde8]
lea rcx, [rsp + 0x30]
call qword [case.0x1401138cb.0]
movzx ecx, byte [rsp + 0x30]
mov edx, esi
xor edx, 0x50c6ec1a
mov eax, dword [0x1404efdd0]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efdf0]
call qword [case.0x1401138cb.0]
test al, 1
jne 0x14021b8c3
mov cl, 0x71
nop word cs:[rax + rax]
mov al, 0x82
lock cmpxchg byte [0x1404ef8b5], cl
je 0x14021b86e
cmp al, 0x2b
jne 0x14021b6d0
jmp 0x14021b8c3
xor edi, edi
mov ebx, esi
xor ebx, 0x3e0003c4
lea r14, [rsp + 0x30]
lea r15, [0x140409950]
mov ebp, esi
xor ebp, 0x57aaf406
lea r12, [0x1404efae0]
nop
mov eax, dword [0x1404efdd4]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efde0]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
call qword [case.0x1401138cb.0]
movzx eax, byte [rdi + r15]
mov r13d, eax
xor r13b, al
not r13b
and r13b, byte [rsp + 0x30]
xor r13b, al
mov eax, dword [0x1404efdc8]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efe08]
mov ecx, edi
mov rdx, r14
mov r8d, ebp
call qword [case.0x1401138cb.0]
mov rax, qword [rsp + 0x30]
mov byte [rax + r12], r13b
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x14021b7c1
inc rdi
jmp 0x14021b710
xor eax, eax
lea rcx, [0x1404ef800]
lea rdx, [0x140409670]
xor r15d, 0x7a82203f
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
mov r9d, dword [0x1404f1418]
add r9d, r15d
cmp r8d, r9d
jge 0x14021b7d5
inc rax
jmp 0x14021b7a0
mov al, 0xe9
xchg byte [0x140532452], al
lea rax, [0x1404efae0]
jmp 0x14021b8ca
mov al, 0x94
xchg byte [0x1404ef80d], al
lea rax, [0x1404ef800]
jmp 0x14021b8ca
xor ecx, ecx
lea rbx, [0x1404ef5d0]
lea r14, [0x140409450]
mov ebp, esi
xor ebp, 0x440d7bab
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
movsxd r8, ecx
lea rdx, [rbx + r8]
movzx eax, byte [r8 + r14]
mov ecx, eax
xor cl, al
not cl
and cl, byte [r8 + rbx]
xor cl, al
mov eax, dword [0x1404efdcc]
add eax, esi
add eax, 0x3a49
cdqe
add rax, qword [0x1404efe18]
mov dword [rsp + 0x20], ebp
mov r9, rdi
call qword [case.0x1401138cb.0]
mov ecx, dword [rsp + 0x30]
test al, 1
je 0x14021b810
xor r15b, 0xd2
add r15b, byte [0x1404f1428]
xchg byte [0x1404ef5ea], r15b
lea rax, [0x1404ef5d0]
jmp 0x14021b8ca
xor eax, eax
lea rcx, [0x1404ef8a0]
lea rdx, [0x140409710]
mov r8d, r15d
xor r8d, 0x7a822037
nop dword [rax + rax]
movzx r9d, byte [rax + rdx]
xor byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x1404f1418]
add r10d, r8d
cmp r9d, r10d
jge 0x14021b8b1
inc rax
jmp 0x14021b890
xor r15b, 0xa0
add r15b, byte [0x1404f1428]
xchg byte [0x1404ef8b5], r15b
lea rax, [0x1404ef8a0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret