Function at 0x140227380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov r12, rcx
mov rax, qword [0x1404678a8]
xor rax, rsp
mov qword [rsp + 0x60], rax
test rcx, rcx
sete al
test rdx, rdx
sete cl
setne dl
xor dl, al
xor cl, al
xor dl, 1
mov rax, r12
or rax, r14
sete r8b
or r8b, dl
xor r8b, 1
or r8b, cl
xor r8b, 1
test r9, r9
sete al
or al, cl
or al, r8b
jmp 0x1402273fc
mov ecx, dword [0x140365ba4]
mov ecx, dword [0x140365ba0]
mov ecx, dword [0x140479194]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1402273f0
movsxd rsi, dword [0x140365ba4]
mov r13d, dword [0x140365ba0]
mov cl, 1
test cl, cl
je 0x1402273f0
test rbx, rbx
setne cl
sete r8b
mov r9d, ecx
and r9b, al
xor al, 1
mov edx, r8d
xor dl, al
and dl, r8b
xor cl, al
and cl, al
or cl, r9b
xor r15d, r15d
test dl, cl
jne 0x140227b59
xor dl, cl
test dl, 1
jne 0x140227b59
movabs rcx, 0x9e55fa95599d3aa1
mov rax, qword [0x14044a6d8]
add rax, rcx
add rax, 0x10
cmp rbx, rax
mov qword [rsp + 0x28], rbx
jae 0x1402274b0
mov r15d, 0x10
sub r15, rbx
lea rdx, [r12 + rbx]
add rdx, 0x50
lea rcx, [rsp + 0x50]
mov r8, r15
call fcn.140335e20
lea rcx, [rsp + r15]
add rcx, 0x50
mov rdx, r14
mov r8, rbx
call fcn.140335e20
jmp 0x14022753b
movups xmm0, xmmword [rbx + r14 - 0x10]
movaps xmmword [rsp + 0x50], xmm0
mov rbp, rbx
shr rbp, 4
lea r15, [r12 + 0x50]
lea rbx, [rsp + 0x40]
nop dword [rax]
mov rax, qword [r12 + 0x20]
mov rcx, r12
mov rdx, r15
mov r8, rbx
call qword [case.0x1401085ed.0]
movups xmm0, xmmword [r14]
movups xmmword [r15], xmm0
mov eax, dword [r14]
mov ecx, dword [rsp + 0x40]
not eax
mov edx, ecx
xor edx, eax
and edx, ecx
or edx, eax
not edx
and eax, ecx
or eax, edx
mov dword [rdi], eax
mov eax, dword [rsp + 0x44]
xor eax, dword [r14 + 4]
mov dword [rdi + 4], eax
mov eax, dword [r14 + 8]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [rsp + 0x48]
xor ecx, eax
mov dword [rdi + 8], ecx
mov eax, dword [rsp + 0x4c]
xor eax, dword [r14 + 0xc]
mov dword [rdi + 0xc], eax
add rdi, 0x10
add r14, 0x10
dec rbp
jne 0x1402274d0
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x28]
mov r12, rax
not r12
xor rax, 0xf
and r12, 0xfffffffffffffff0
or r12, rax
not r12
mov rax, qword [0x14044a6d8]
movabs rdx, 0x9e55fa95599d3aa1
mov rcx, rdx
xor rcx, rax
and rax, rdx
lea rax, [rcx + rax*2]
cmp r12, rax
je 0x140227b46
lea rax, [0x140365ba4]
add rsi, rax
mov r15, qword [rsp + 0x30]
mov rax, qword [r15 + 0x20]
lea rdx, [r15 + 0x50]
mov r8d, dword [0x140479190]
mov ecx, 0x6a603629
add ecx, dword [0x14044a6e0]
mov r9d, ecx
xor r9d, 0xd834f425
and ecx, 0x5834f425
lea r9d, [r9 + rcx*2]
sub r9d, r8d
add r9d, 0x27cb0bda
mov cl, 1
test cl, cl
je 0x1402275e3
mov ebp, r9d
neg ebp
mov dword [0x140479190], ebp
mov ecx, dword [0x140479198]
cmp ecx, 0x12
jle 0x140227647
mov r10d, dword [0x14044a6e0]
sub r10d, r9d
add r10d, 0x6a603629
imul r10d, r9d
mov ecx, 0xab70c9da
sub ecx, r10d
mov r11d, ecx
xor r11d, 0x548f3626
and ecx, 0x548f3626
lea ecx, [r11 + rcx*2]
add ecx, r9d
add ecx, 0x98fd1ea
mov r11d, ecx
xor r11d, 0x16
and ecx, 0x16
lea ecx, [r11 + rcx*2]
shl r10d, cl
mov r11d, r10d
shl r11d, cl
sub r10d, r11d
imul r10d, r11d
sub r10d, r11d
mov dword [0x140479190], r10d
jmp 0x1402275cd
mov ecx, r8d
not ecx
dec r9d
and r9d, ecx
xor ebp, r8d
or ebp, r9d
not ebp
test ebp, ebp
jne 0x1402276b6
mov ecx, 0x6a603629
nop word cs:[rax + rax]
mov r8d, dword [0x140479194]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x14022769c
mov r8d, dword [0x14044a6e0]
add r8d, ecx
mov r9d, dword [0x140479198]
cmp r9d, 0x48
jle 0x1402276ab
mov r8d, dword [0x140479198]
cmp r8d, 0x52
jge 0x140227670
jmp 0x140227685
xor ecx, ecx
cmp r8d, r13d
jl 0x14022790d
xor ecx, ecx
mov qword [rsp + 0x20], rcx
lea r8, [rsp + 0x40]
mov rcx, r15
call qword [case.0x1401085ed.0]
mov rax, qword [rsp + 0x28]
mov rcx, rax
xor rcx, 0xfffffffffffffffc
and rcx, rax
cmp r12, 4
mov qword [rsp + 0x38], rcx
jae 0x1402276f6
xor edx, edx
movabs rbx, 0x9e55fa95599d3aa1
jmp 0x1402278ef
movabs r9, 0xe3d1e3944914e987
movabs r10, 0xba29856cb9aeb44a
sub r12, rcx
mov r15, 0xffffffffffffffff
xor edx, edx
xor ecx, ecx
movabs rbx, 0x9e55fa95599d3aa1
nop word cs:[rax + rax]
mov r8, r12
movzx r11d, byte [rsp + rdx + 0x40]
xor r11b, byte [r14 + rdx]
mov byte [rdi + rdx], r11b
mov r11d, r15d
not r11d
and r11d, 1
mov rsi, qword [0x14044a6d8]
lea r13, [rbx + 1]
mov r12, r13
xor r12, rsi
and r13, rsi
lea rsi, [r12 + r13*2]
mov r12, rsi
not r12
mov r13, rdx
and r13, rsi
mov rax, r15
and rax, r12
or rax, r13
mov r13, rdx
and r13, r12
or r13, rax
not r13
xor r12, rdx
and rsi, r15
or rsi, r12
not rsi
or rsi, r11
or rsi, r13
movzx eax, byte [r14 + rsi]
mov r11d, eax
xor r11b, al
not r11b
and r11b, byte [rsp + rsi + 0x40]
xor r11b, al
mov byte [rdi + rsi], r11b
mov rax, rdx
xor rax, 0xfffffffffffffffd
mov r11, rax
xor r11, r15
and r11, rax
mov eax, r15d
and eax, 2
mov rsi, rdx
and rsi, 0xfffffffffffffffd
or rsi, rax
or rsi, r11
movzx eax, byte [rsp + rsi + 0x40]
xor al, byte [r14 + rsi]
mov byte [rdi + rsi], al
mov rax, qword [0x14044a6d8]
add rax, rbx
add rax, 3
or rax, rdx
movzx r11d, byte [r14 + rax]
movzx esi, byte [rsp + rax + 0x40]
movzx r12d, byte [0x14044a6e4]
add r12b, 0x1e
xor r12b, r11b
not r11b
or r11b, sil
not r11b
and r12b, sil
or r12b, r11b
mov byte [rdi + rax], r12b
add rdx, 4
cmp byte [0x140477681], 0
jne 0x1402278ef
mov r11, qword [0x14044a6d8]
mov rax, r10
xor rax, r11
mov rsi, r10
and rsi, r11
lea rax, [rax + rsi*2]
mov rsi, rcx
movabs r12, 0xea89ce4e45d2ac96
xor rsi, r12
and rcx, r12
lea rcx, [rsi + rcx*2]
movabs rsi, 0x8317ecb4bb87a581
sub rcx, rsi
add rcx, rsi
add rcx, rax
sub rcx, r12
movabs rsi, 0x37c8c16a4bf8f0d6
add rcx, rsi
mov rax, rcx
xor rax, r9
and rcx, r9
lea rcx, [rax + rcx*2]
sub rcx, rsi
movabs rax, 0xae65d2e1ac9c666c
sub rcx, rax
sub rcx, r9
add rcx, rax
movabs rsi, 0xff5d3a8943fb6dbf
lea rax, [r10 + rsi]
movabs r12, 0x6c2da5328910615c
sub rax, r12
sub rax, rsi
mov rsi, r11
xor rsi, r11
not rsi
and rsi, rax
xor rsi, r11
and rax, r11
lea rax, [rsi + rax*2]
add rax, r12
sub rcx, rax
add rcx, 4
add r15, 0xfffffffffffffffc
mov r12, r8
cmp rcx, r8
jne 0x140227730
movabs rax, 0x6da8b8c03ab44fa4
mov ecx, dword [0x140479198]
cmp ecx, 0x50
jl 0x14022799f
jmp 0x1402279bd
mov r8b, 1
xor r9d, r9d
mov qword [rsp + 0x20], r9
jmp 0x140227937
mov r9d, ecx
xor r9d, 8
and ecx, 8
lea ecx, [r9 + rcx*2]
cmp ecx, r13d
jge 0x1402276bd
movsxd r9, ecx
mov r10d, dword [0x140479194]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
jne 0x140227968
nop
mov r10, qword [rsi + r9]
mov r11d, dword [0x140479194]
lea ebx, [r11 - 1]
imul ebx, r11d
test bl, 1
je 0x140227970
mov r10, qword [rsi + r9]
jmp 0x140227950
xor qword [rsp + 0x20], r10
test r8b, r8b
je 0x140227990
nop word [rax + rax]
mov r9d, dword [0x140479198]
cmp r9d, 0x24
jl 0x140227920
nop dword [rax]
mov r9d, dword [0x140479198]
cmp r9d, 0x55
jge 0x140227990
jmp 0x140227980
mov rcx, qword [0x140365b98]
cmp ebp, 1
mov r8, rax
sbb r8, 0xffffffffffffffff
mov r9d, dword [0x140479198]
cmp r9d, 0x49
jle 0x1402279d0
mov dword [0x140479194], 1
mov rcx, qword [0x140365b98]
jmp 0x14022799f
not rax
add rax, r8
sub rcx, qword [rsp + 0x20]
mov r8, rax
not r8
xor rax, r8
and rax, rcx
xor rax, r8
xor r8, rax
and r8, rax
mov eax, dword [0x14044a6d8]
add eax, ebx
movabs rcx, 0xdc9e934e36316c11
add ecx, eax
add cl, 0xf
mov r9, r8
shr r9, cl
or r9d, r8d
mov eax, dword [0x140479198]
mov eax, r9d
shr eax, 0x10
or eax, r9d
mov r9, qword [rsp + 0x38]
nop word cs:[rax + rax]
mov ecx, dword [0x140479194]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x140227a30
movzx ecx, ah
mov r8d, eax
not r8b
xor al, cl
not cl
and cl, r8b
or cl, al
not cl
or cl, al
add byte [0x14047758c], cl
test r9, r9
je 0x140227b46
movabs rax, 0xe1929f7e6091114c
movabs rcx, 0xd074f10d5f8e0a18
movabs r8, 0x7ea4881655b4165d
movabs rbx, 0x50d1281d42d5afe5
movabs r10, 0x48335848fc69b247
movabs r11, 0xc6cb1ad4d1f56c5
movabs rsi, 0xac8c26a485ed8fa
xor r12d, r12d
mov r15, rsi
movabs r9, 0x9e55fa95599d3aa1
sub r15, r9
add r15, r11
nop word cs:[rax + rax]
movzx ebp, byte [0x14047758c]
add bpl, byte [r14 + rdx]
xor bpl, byte [rsp + rdx + 0x40]
mov byte [rdi + rdx], bpl
mov r13, qword [0x14044a6d8]
movabs r9, 0x9e55fa95599d3aa1
lea rbp, [r9 + r13]
add r13, rbx
mov r9, rbx
sub r9, r13
mov r13, r8
sub r13, r12
mov r12, r13
xor r12, rax
and r13, rax
lea r12, [r12 + r13*2]
sub r12, rcx
sub r12, r8
add r12, rcx
sub r12, r10
add r12, rbp
add r9, r15
sub r9, r11
sub r9, rsi
add r12, r10
add r12, r9
inc rdx
neg r12
add r12, rax
inc r12
cmp r12, qword [rsp + 0x38]
jne 0x140227ad0
movaps xmm0, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
movups xmmword [rax + 0x50], xmm0
mov r15, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14030df10
mov rax, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret