Function at 0x1402b4e70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rdi, r9
mov rsi, r8
mov r14, rdx
mov rax, qword [0x140554790]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x20], rcx
test rcx, rcx
sete al
test rdx, rdx
sete cl
or cl, al
test r9, r9
setne al
sete dl
mov r8d, ecx
xor r8b, 1
mov r9d, ecx
xor r9b, dl
mov r10d, r8d
and r10b, al
or r10b, r9b
xor r10b, 1
and r8b, dl
and cl, al
or cl, r8b
test rsi, rsi
sete al
or al, cl
or al, r10b
mov ecx, 0x25bed5f4
lea rdx, [fcn.1402b4e70]
add edx, edx
add edx, 0x4720
mov r8d, 0x25bed5f3
nop dword [rax + rax]
mov r9d, dword [0x140536fb0]
add r9d, ecx
mov r10d, edx
xor r10d, r9d
or r9d, edx
not r9d
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x1402b4f5a
mov r13, qword [0x140536f18]
mov r9d, dword [0x140565ba0]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x140536fb0]
mov r11d, r9d
xor r11d, 0x25bed5f3
and r9d, 0x25bed5f3
lea r9d, [r11 + r9*2]
cmp r10d, r9d
je 0x1402b4f89
mov r9, qword [0x140536f18]
mov r9d, dword [0x140565ba0]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x140536fb0]
add r9d, r8d
cmp r10d, r9d
jne 0x1402b4f00
jmp 0x1402b4f1f
movsxd rbx, dword [r13]
mov ecx, dword [0x140565ba4]
cmp ecx, 0x24
jg 0x1402b4fb0
mov ebp, dword [0x140438cd4]
mov ecx, dword [0x140565ba4]
cmp ecx, 0xe
jl 0x1402b4fc9
nop dword [rax]
mov ecx, dword [0x140438cd4]
mov ecx, dword [0x140565ba0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1402b4fb0
jmp 0x1402b4f98
test al, 1
je 0x1402b4fd4
xor esi, esi
jmp 0x1402b554e
movabs r12, 0xd8eb721b653866d3
cmp rsi, 0xf
mov qword [rsp + 0x28], rsi
ja 0x1402b5031
mov r15d, 0x10
sub r15, rsi
mov rax, qword [rsp + 0x20]
lea rdx, [rax + rsi]
add rdx, 0x50
lea rcx, [rsp + 0x60]
mov r8, r15
call fcn.14040bf30
lea rcx, [rsp + r15]
add rcx, 0x60
mov rdx, r14
mov r8, rsi
call fcn.14040bf30
cmp byte [0x140565ba8], 0
je 0x1402b51b0
jmp 0x1402b553b
mov qword [rsp + 0x30], rbx
mov rax, rsi
xor rax, 0xfffffffffffffff0
add rax, qword [0x140564d38]
mov rcx, rsi
and rcx, 0xfffffffffffffff0
mov rdx, qword [0x140536fb8]
mov rbx, r12
add rdx, r12
add rdx, 3
imul rdx, rcx
add rdx, rax
movups xmm0, xmmword [r14 + rdx]
movaps xmmword [rsp + 0x60], xmm0
mov rax, rsi
shr rax, 4
mov rcx, qword [rsp + 0x20]
lea r15, [rcx + 0x50]
add rdi, 0x10
add r14, 0x10
lea r12, [rsp + 0x50]
nop word [rax + rax]
mov rsi, rax
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 0x20]
mov rdx, r15
mov r8, r12
call qword [0x1404ee420]
movups xmm0, xmmword [r14 - 0x10]
movups xmmword [r15], xmm0
mov r8d, dword [r14 - 0x10]
mov edx, dword [rsp + 0x50]
mov eax, dword [0x140536fb0]
mov ecx, eax
xor ecx, 0x25bed5f2
and eax, 0x25bed5f2
lea eax, [rcx + rax*2]
mov ecx, r8d
not ecx
mov r9d, ecx
and r9d, eax
not eax
mov r10d, ecx
xor r10d, eax
and r10d, ecx
xor eax, r8d
or eax, r9d
not eax
or eax, r10d
or ecx, edx
mov r8d, ecx
not r8d
and eax, edx
mov edx, eax
not edx
mov r9d, ecx
and r9d, edx
and edx, r8d
xor r8d, eax
or r9d, r8d
not r9d
and eax, ecx
or edx, eax
or edx, r9d
mov dword [rdi - 0x10], edx
mov eax, dword [r14 - 0xc]
mov ecx, dword [rsp + 0x54]
mov edx, ecx
not edx
not eax
mov r8d, edx
xor r8d, eax
and r8d, edx
and eax, ecx
or eax, r8d
mov dword [rdi - 0xc], eax
mov eax, dword [r14 - 8]
mov ecx, dword [rsp + 0x58]
not ecx
mov edx, ecx
and edx, eax
or ecx, eax
not ecx
or ecx, edx
mov dword [rdi - 8], ecx
mov eax, dword [r14 - 4]
mov ecx, dword [rsp + 0x5c]
mov edx, ecx
not edx
mov r8d, eax
xor r8d, edx
and edx, eax
not r8d
and r8d, ecx
mov eax, r8d
xor eax, r8d
not eax
and eax, edx
and edx, r8d
xor eax, r8d
or eax, edx
mov dword [rdi - 4], eax
mov rax, qword [0x140536fb8]
add rax, rbx
add rax, rsi
je 0x1402b519b
add rdi, 0x10
add r14, 0x10
jmp 0x1402b5090
mov r12, rbx
mov rbx, qword [rsp + 0x30]
cmp byte [0x140565ba8], 0
jne 0x1402b553b
mov rax, qword [0x140536fb8]
add rax, r12
mov r8, qword [rsp + 0x28]
mov rcx, r8
xor rcx, rax
mov rdx, 0xffffffffffffffef
sub rdx, rax
add rax, 0x10
xor rdx, rax
and rdx, r8
xor rdx, rax
mov r15, rcx
xor r15, 0xf
and r15, rcx
or r15, rdx
not r15
test r15, r15
je 0x1402b553b
mov rax, rbx
xor rax, r13
and rbx, r13
lea rax, [rax + rbx*2]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx + 0x20]
lea rdx, [rcx + 0x50]
lea r8, [rsp + 0x50]
call qword [0x1404ee420]
mov rdx, qword [rsp + 0x28]
mov rcx, rdx
not rcx
mov eax, ecx
and eax, 3
and rdx, 0xfffffffffffffffc
or rdx, rax
and rcx, 0xfffffffffffffffc
xor rcx, rdx
not rcx
mov qword [rsp + 0x40], rcx
mov rax, qword [0x140536fb8]
add rax, r12
add rax, 5
mov qword [rsp + 0x48], rax
mov r8d, dword [0x140536f14]
mov eax, r8d
sub eax, dword [0x140536fb0]
add eax, 0x222c0eb7
mov edx, dword [0x140565ba0]
mov edx, 0xfffffffe
sub edx, eax
inc eax
and edx, 0xb8151b56
mov r9d, eax
and r9d, 0x47eae4a9
or r9d, edx
and eax, 0x38151b56
lea r9d, [r9 + rax*2]
mov eax, 0x25bed5f4
lea rdx, [fcn.1402b4e70]
add edx, edx
add edx, 0x2960
nop dword [rax]
mov r10d, dword [0x140536fb0]
add r10d, eax
test edx, r10d
jne 0x1402b52b0
xor r8d, r9d
not r8d
mov r10d, 0x25bed619
nop dword [rax + rax]
cmp dword [0x140536fb0], 0xda412a0d
jne 0x1402b52f6
mov dword [0x140536f14], r9d
mov eax, dword [0x140565ba4]
mov edx, dword [0x140536fb0]
add edx, r10d
cmp eax, edx
jl 0x1402b5346
mov dword [0x140536f14], r9d
mov ecx, dword [0x140565ba0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140536fb0]
mov edx, ecx
xor edx, 0x25bed5f5
mov r11d, ecx
and r11d, 0x25bed5f5
lea r11d, [rdx + r11*2]
xor edx, edx
div r11d
add ecx, 0x1b017a6b
mov eax, ecx
xor eax, 0xabd5b88
and ecx, 0xabd5b88
lea eax, [rax + rcx*2]
cmp edx, eax
jne 0x1402b52d0
jmp 0x1402b52dc
test r8d, r9d
je 0x1402b5353
xor r10d, r10d
jmp 0x1402b55aa
mov eax, dword [0x140565ba4]
cmp eax, 0x39
jg 0x1402b5580
jmp 0x1402b556f
mov rcx, qword [rsp + 0x40]
sub r15, rcx
xor eax, eax
xor edx, edx
nop word cs:[rax + rax]
movzx r8d, byte [rsp + rax + 0x50]
xor r8b, byte [r14 + rax]
mov byte [rdi + rax], r8b
mov r8, rax
or r8, 1
movzx ebp, byte [r14 + r8]
movzx r11d, byte [rsp + r8 + 0x50]
movzx r9d, byte [0x140536fc0]
mov esi, r11d
not sil
add r9b, 0x19
mov r10d, ebp
xor r10b, r9b
not r9b
mov r12d, esi
xor r12b, r9b
and r12b, sil
and r9b, r11b
or r9b, r12b
mov r12d, r9d
xor r12b, bpl
or r9b, bpl
not r9b
or r9b, r12b
not r9b
xor sil, r10b
mov ebp, r11d
xor bpl, r10b
not sil
and r10b, r11b
or r10b, sil
not r10b
or r10b, bpl
not r10b
or r10b, r9b
mov byte [rdi + r8], r10b
mov r8, rax
or r8, 2
movzx r9d, byte [r14 + r8]
movzx r10d, byte [rsp + r8 + 0x50]
not r9b
mov r11d, r9d
or r11b, r10b
not r11b
and r9b, r10b
or r9b, r11b
mov byte [rdi + r8], r9b
mov r8, rax
or r8, 3
movzx r9d, byte [r14 + r8]
movzx r10d, byte [rsp + r8 + 0x50]
not r9b
mov r11d, r9d
or r11b, r10b
not r11b
and r9b, r10b
or r9b, r11b
mov byte [rdi + r8], r9b
mov r8, rdx
xor r8, 4
and edx, 4
lea rdx, [r8 + rdx*2]
add rax, 4
cmp rdx, r15
jne 0x1402b5380
test rcx, rcx
je 0x1402b553b
movabs rdx, 0x84c8f08f88554118
xor r9d, r9d
mov r8, rdx
neg r8
nop word cs:[rax + rax]
movzx esi, byte [r14 + rax]
movzx r11d, byte [rsp + rax + 0x50]
mov r10d, r11d
not r10b
movzx ebp, byte [0x140536fc0]
mov r15d, ebp
not r15b
mov r12d, ebp
and r12b, 0xe6
mov r13d, r15d
and r13b, 0x19
or r13b, r12b
xor bpl, 0x19
and r15b, 0x66
or r15b, bpl
not r15b
add r15b, r15b
add r15b, r13b
mov ebp, esi
not bpl
mov r12d, r10d
xor r12b, bpl
xor bpl, sil
and bpl, r15b
and r12b, r10b
xor r10b, sil
xor r10b, bpl
and r10b, r11b
mov r11d, r10d
xor r11b, r10b
not r11b
and r11b, r12b
and r12b, r10b
xor r11b, r10b
or r11b, r12b
mov byte [rdi + rax], r11b
neg r9
mov r10, r9
xor r10, r8
and r9, r8
lea r9, [r10 + r9*2]
neg r9
mov r10, r9
xor r10, 1
and r9d, 1
lea r9, [r10 + r9*2]
sub r9, rdx
cmp r9, rcx
je 0x1402b553b
inc rax
jmp 0x1402b5490
movaps xmm0, xmmword [rsp + 0x60]
mov rax, qword [rsp + 0x20]
movups xmmword [rax + 0x50], xmm0
mov rsi, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1403e4010
mov rax, rsi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov al, 1
test al, al
jne 0x1402b5593
nop word cs:[rax + rax]
mov eax, dword [0x140565ba0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1402b5580
jmp 0x1402b556f
mov edx, 0x25bed5f3
add edx, dword [0x140536fb0]
xor eax, eax
mov r10d, 0
cmp edx, ebp
jl 0x1402b55d5
cmp r15, qword [rsp + 0x48]
jae 0x1402b55c6
xor eax, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
jne 0x1402b5472
jmp 0x1402b553b
mov al, 1
test al, al
jne 0x1402b56c0
jmp 0x1402b56e2
lea rdx, [fcn.1402b4e70]
lea ebx, [rdx + rdx]
add ebx, 0x29e0
mov dword [rsp + 0x3c], ebx
not ebx
mov sil, 1
xor r13d, r13d
xor r12d, r12d
jmp 0x1402b564e
movzx ecx, word [r10]
mov edx, r12d
not edx
movzx r11d, word [0x140536fc4]
mov r10d, 0xffffc4dc
sub r10d, r11d
add r11d, 0x3b23
xor r10d, r11d
and r10d, ecx
xor r10d, r11d
and ecx, edx
xor r12d, r10d
xor r10d, edx
and r10d, edx
or r10d, r12d
not r10d
or r10d, ecx
add r13d, 2
mov r12d, r10d
cmp r13d, ebp
jge 0x1402b55aa
movsxd r10, r13d
add r10, qword [rsp + 0x30]
test dword [rsp + 0x3c], ebx
jne 0x1402b5670
nop dword [rax]
test sil, sil
jne 0x1402b5691
nop word cs:[rax + rax]
mov ecx, dword [0x140565ba4]
cmp ecx, 0x3b
jge 0x1402b5670
jmp 0x1402b5660
mov ecx, dword [0x140565ba0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1402b5695
test al, al
jne 0x1402b5680
mov r11d, dword [0x140565ba0]
mov edx, dword [0x140536fb0]
mov ecx, r11d
sub ecx, edx
add ecx, 2
imul ecx, r11d
and ecx, 1
add edx, 0x25bed5f3
cmp ecx, edx
jne 0x1402b5680
jmp 0x1402b5600
xor edx, edx
test r8d, r9d
setne r11b
movzx eax, word [0x140438cd8]
mov ecx, dword [0x140565ba0]
lea esi, [rcx - 1]
imul esi, ecx
test sil, 1
je 0x1402b56eb
movzx eax, word [0x140438cd8]
jmp 0x1402b56c0
mov dl, r11b
movzx ecx, dx
mov edx, ecx
neg edx
dec ecx
sub r10d, eax
mov eax, r10d
neg eax
dec r10d
mov r8d, r10d
and r8d, ecx
mov r9d, eax
and r9d, edx
or r9d, r8d
xor r10d, edx
and eax, ecx
or eax, r10d
not eax
or eax, r9d
mov ecx, dword [0x140536fc4]
lea edx, [rcx + 0x3b23]
xor edx, eax
add ecx, 0x3b24
cmp dx, cx
setne al
or al, byte [0x140565ba8]
mov ecx, dword [0x140565ba4]
mov edx, dword [0x140536fb0]
mov r8d, edx
xor r8d, 0x25bed609
not edx
and edx, 0x5a4129f6
or edx, r8d
not edx
lea edx, [r8 + rdx*2]
cmp ecx, edx
jge 0x1402b57a8
mov ecx, eax
and cl, 1
mov byte [0x140565ba8], cl
mov ecx, dword [0x140565ba0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140536fb0]
mov r8d, ecx
xor r8d, 0x5a412a0c
and r8d, ecx
xor ecx, 0x25bed5f3
lea ecx, [rcx + r8*2]
cmp edx, ecx
je 0x1402b5367
mov edx, eax
and dl, 1
nop dword [rax]
mov byte [0x140565ba8], dl
mov ecx, dword [0x140565ba0]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x1402b57b0
jmp 0x1402b5769