Function at 0x1401b2470
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 esi, r9d
mov r13d, dword [rsp + 0xc0]
test ecx, ecx
je 0x1401b25cb
test edx, edx
je 0x1401b268f
movzx eax, byte [0x14050b2dd]
nop word cs:[rax + rax]
cmp al, 0x44
je 0x1401b27d5
movzx ecx, byte [0x14050cd6c]
mov eax, r13d
xor al, 0xe5
add al, cl
mov edx, r13d
xor dl, 0xd1
add dl, cl
lock cmpxchg byte [0x14050b2dd], dl
jne 0x1401b24b0
xor edi, edi
mov eax, esi
xor eax, 0xa49b047b
mov dword [rsp + 0x54], eax
mov r14d, r13d
xor r14d, 0x69b4a4cb
lea r15, [rsp + 0x40]
mov ebx, r13d
xor ebx, 0x23175d64
xor r13d, 0x69b48f4b
mov ebp, esi
xor ebp, 0x8a2b3028
nop dword [rax]
mov eax, dword [0x14050cd68]
add eax, r14d
mov ecx, dword [0x14050b61c]
add ecx, esi
add eax, ecx
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b698]
mov ecx, edi
lea rdx, [rsp + 0x3f]
mov r8, r15
mov r9d, dword [rsp + 0x54]
call qword [case.0x140303ece.0]
movzx r12d, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x14050cd68]
lea r8d, [rbx + rax]
add eax, r13d
mov edx, esi
sub edx, eax
add edx, dword [0x14050b630]
xor r8d, esi
movsxd rax, edx
add rax, qword [0x14050b670]
mov rdx, r15
call qword [case.0x140303ece.0]
movzx edx, byte [rsp + 0x40]
mov eax, dword [0x14050b634]
add eax, esi
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b660]
mov ecx, r12d
mov r8, r15
mov r9d, ebp
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x40]
lea rcx, [0x14050b2d0]
mov byte [rdi + rcx], al
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x1401b27a8
inc rdi
jmp 0x1401b2510
test edx, edx
je 0x1401b273a
movzx eax, byte [0x14050b38d]
nop word [rax + rax]
cmp al, 0x1d
je 0x1401b27e9
movzx ecx, byte [0x14050cd6c]
mov eax, r13d
xor al, 0xa4
add al, cl
mov edx, r13d
xor dl, 0x45
mov r8d, edx
xor r8b, cl
and dl, cl
add dl, dl
add dl, r8b
lock cmpxchg byte [0x14050b38d], dl
jne 0x1401b25e0
xor edi, edi
lea r15, [0x14050b380]
mov ebp, esi
xor ebp, 0xc3117081
lea rbx, [rsp + 0x3f]
lea r14, [rsp + 0x40]
lea r12, [0x14042daa0]
nop word cs:[rax + rax]
lea rcx, [r15 + rdi]
mov eax, dword [0x14050b62c]
add eax, esi
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b688]
mov dword [rsp + 0x20], ebp
mov edx, edi
mov r8, rbx
mov r9, r14
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
add al, byte [rcx + r12]
mov byte [rdi + r15], al
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x1401b27e1
inc rdi
jmp 0x1401b2640
movzx ecx, byte [0x14050b3f4]
mov edx, esi
xor edx, 0x1b6f45d8
mov eax, dword [0x14050b638]
add eax, esi
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b678]
call qword [case.0x140303ece.0]
test al, 1
jne 0x1401b28b6
mov edi, esi
xor edi, 0x57c5836e
nop word [rax + rax]
movzx ecx, byte [0x14050cd6c]
mov edx, r13d
not dl
mov r8d, edx
and r8b, 0x6f
mov eax, r13d
and al, 0x90
or al, r8b
add al, cl
and dl, 0x2c
mov r8d, r13d
and r8b, 0xd3
or r8b, dl
add r8b, cl
lock cmpxchg byte [0x14050b3f4], r8b
je 0x1401b27f5
mov ecx, dword [0x14050b614]
add ecx, esi
add ecx, 0xffffd980
movsxd r8, ecx
add r8, qword [0x14050b648]
mov ecx, eax
mov edx, edi
mov rax, r8
call qword [case.0x140303ece.0]
test al, 1
je 0x1401b26d0
jmp 0x1401b28b6
movzx eax, byte [0x14050b18c]
mov ecx, r13d
xor cl, 0x97
add cl, byte [0x14050cd6c]
cmp al, cl
je 0x1401b2971
mov ebx, esi
xor ebx, 0xd07b3d2
lea rdi, [rsp + 0x40]
nop word cs:[rax + rax]
mov eax, dword [0x14050b628]
add eax, esi
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b650]
mov rcx, rdi
mov edx, ebx
call qword [case.0x140303ece.0]
cmp byte [rsp + 0x41], 0
jne 0x1401b28c2
cmp byte [rsp + 0x40], 0xce
jne 0x1401b2770
jmp 0x1401b2971
mov ecx, esi
xor ecx, 0x91c14df6
add r14d, dword [0x14050cd68]
add esi, dword [0x14050b63c]
lea eax, [rsi + r14]
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b658]
call qword [case.0x140303ece.0]
lea rax, [0x14050b2d0]
jmp 0x1401b2978
mov al, 0x1d
xchg byte [0x14050b38d], al
lea rax, [0x14050b380]
jmp 0x1401b2978
xor eax, eax
lea r15, [0x14050b3e0]
mov edi, esi
xor edi, 0xe24d303c
mov ebp, r13d
xor ebp, 0x69b4a4cb
mov r12d, r13d
xor r12d, 0x69b4a4a7
nop dword [rax]
movsxd r14, eax
movzx ebx, byte [r14 + r15]
mov eax, dword [0x14050cd68]
add eax, ebp
mov ecx, dword [0x14050b618]
add ecx, esi
add eax, ecx
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b690]
mov rcx, r14
lea rdx, [rsp + 0x40]
mov r8d, edi
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x40]
mov ecx, eax
xor cl, al
not cl
and cl, bl
xor cl, al
mov byte [r14 + r15], cl
mov eax, r14d
xor eax, 1
and r14d, 1
lea eax, [rax + r14*2]
mov ecx, dword [0x14050cd68]
add ecx, r12d
cmp eax, ecx
jl 0x1401b2820
xor r13d, 0x69b48f4b
add r13d, dword [0x14050cd68]
mov ecx, esi
sub esi, r13d
add esi, dword [0x14050b610]
xor ecx, 0xd03bd2c0
movsxd rax, esi
add rax, qword [0x14050b680]
call qword [case.0x140303ece.0]
lea rax, [0x14050b3e0]
jmp 0x1401b2978
xor ebx, ebx
lea r15, [0x14050b180]
mov ebp, esi
xor ebp, 0x4db42700
mov r12d, r13d
xor r12d, 0x69b48f4b
lea r14, [rsp + 0x3f]
xor r13d, 0x69b4a4df
nop dword [rax]
mov eax, dword [0x14050cd68]
add eax, r12d
mov ecx, esi
sub ecx, eax
add ecx, dword [0x14050b620]
movzx edx, byte [rbx + r15]
movsxd rax, ecx
add rax, qword [0x14050b668]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rdi
mov rcx, rbx
mov r8d, ebx
mov r9, r14
call qword [case.0x140303ece.0]
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov byte [rcx + r15], al
lea eax, [rbx + 1]
mov ecx, dword [0x14050cd68]
add ecx, r13d
cmp eax, ecx
jge 0x1401b294d
inc rbx
jmp 0x1401b28f0
mov eax, dword [0x14050b624]
mov ecx, esi
xor ecx, 0xdfb5fca5
add eax, esi
add eax, 0xffffd980
cdqe
add rax, qword [0x14050b640]
call qword [case.0x140303ece.0]
lea rax, [0x14050b180]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret