Function at 0x140153ea0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x198
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x110], 0xfffffffffffffffe
mov rsi, rcx
movsxd rax, dword [0x1404ccc60]
movabs rcx, 0x8fd9bc626acfe884
add rcx, rax
lea r14, [0x1404ccc60]
add r14, rcx
movabs rbx, 0x5e3e5076702ad044
nop word cs:[rax + rax]
mov r13, qword [0x1405a0ba8]
mov r12d, dword [0x1404ccc64]
mov eax, dword [0x14061265c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140153f46
mov eax, dword [0x1404ccc64]
mov eax, dword [0x140612660]
mov ecx, dword [0x1405a0ba0]
mov edx, ecx
xor edx, 0xb75c768b
and ecx, 0x375c768b
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jmp 0x140153f00
mov rax, qword [rsi]
mov edi, dword [rax + 0xc134]
add rdi, qword [rsi + 8]
mov byte [rbp - 0x58], 0
lea r15, [rbp - 0x54]
mov r8d, 0x150
mov rcx, r15
xor edx, edx
call fcn.1404ad740
mov eax, 0xb1e1
add eax, dword [0x1405a0b80]
cdqe
add rax, qword [0x1405a0b90]
mov rcx, r15
xor edx, edx
mov r8d, 0xbeffde81
mov r9d, 0xdccbfec8
call qword [case.0x14016c073.0]
mov eax, 0x49e3b8f8
add eax, dword [0x1405a0b84]
mov ecx, eax
xor ecx, 0xb61cf8e9
and eax, 0x361cf8e9
lea eax, [rcx + rax*2]
cdqe
add rax, qword [0x1405a0b98]
mov ecx, 1
xor edx, edx
mov r8d, 0x51047a86
call qword [case.0x14016c073.0]
movaps xmm0, xmmword [rax]
movaps xmmword [rbp + 0x100], xmm0
lea rax, [rbp - 4]
movzx r9d, byte [rbp - 0x58]
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x100]
mov r8d, 0x10
mov rcx, r15
call fcn.1403110c0
xor rbx, r13
not r13
movabs rax, 0x21c1af898fd52fbb
and r13, rax
or r13, rbx
not r13
lea rax, [rbx + r13*2]
sub r14, rax
xorps xmm0, xmm0
lea rax, [rbp - 4]
movups xmmword [rax], xmm0
mov rax, qword [rsi]
mov ecx, dword [0x14061265c]
lea rcx, [fcn.140153ea0]
lea edx, [rcx + rcx]
add edx, 0x920
mov r8d, edx
not r8d
and edx, r8d
nop word cs:[rax + rax]
lea r9d, [rcx + rcx]
add r9d, 0x921
xor r9d, edx
mov r10d, edx
or r10d, r8d
or r10d, r9d
cmp r10d, 0xffffffff
jne 0x140154050
mov ecx, dword [0x140612660]
cmp ecx, 0x47
jle 0x14015407a
jmp 0x1401540a6
mov ecx, dword [0x1405a0af0]
mov edx, ecx
xor edx, 1
mov r8d, ecx
and r8d, 1
lea ebx, [rdx + r8*2]
mov dword [0x1405a0af0], ebx
cmp dword [0x1405a0ba0], 0x48a3898c
je 0x140154132
mov edx, dword [0x1405a0af0]
mov ecx, edx
neg ecx
mov r8d, ecx
xor r8d, 0x48255095
mov r9d, ecx
and r9d, 0x48255095
lea r8d, [r8 + r9*2]
add r8d, 0xb7daaf6c
lea r9d, [rdx - 1]
and r9d, r8d
mov r10d, ecx
xor ecx, r8d
not r8d
xor r10d, r8d
mov r11d, r10d
or r11d, r9d
not r11d
or r11d, r9d
and r10d, r8d
or r10d, ecx
not r10d
lea ecx, [r11 + r10*2]
sub ecx, edx
shl edx, cl
sub ecx, edx
sub edx, ecx
imul edx, ecx
shl edx, cl
sub ecx, edx
mov r8d, edx
shl r8d, cl
mov ecx, edx
xor ecx, r8d
not edx
not r8d
and r8d, edx
or r8d, ecx
not r8d
lea ecx, [rcx + r8*2]
mov dword [0x1405a0af0], ecx
jmp 0x14015407a
mov edx, ecx
not edx
mov r8d, edx
and r8d, ebx
not ebx
and ecx, ebx
or ecx, r8d
and ebx, edx
or ebx, ecx
not ebx
test ebx, ebx
je 0x140154152
xor r15d, r15d
jmp 0x14015419c
mov ecx, dword [0x140612660]
nop dword [rax + rax]
mov ecx, dword [0x14061265c]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x140154160
mov ecx, dword [0x140612660]
nop word [rax + rax]
mov ecx, dword [0x140612660]
cmp ecx, 0x27
jg 0x140154180
xor ecx, ecx
mov r15d, 0
test r12d, r12d
jg 0x14015438e
mov ecx, dword [0x1405a0ba0]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0x2666edf0
mov r9d, ecx
xor r9d, 0xd999120f
and r9d, edx
or r9d, r8d
mov r8d, ecx
xor r8d, 0x5999120f
and edx, 0x2666edf0
or edx, r8d
not edx
lea r14d, [r9 + rdx*2]
add r14d, dword [0x140612664]
add r14d, dword [rax + 0xc130]
sub r14d, ecx
add r14d, 0x2666edf1
cmp r14d, 8
jb 0x140154298
shr r14d, 3
xor r12d, r12d
nop word cs:[rax + rax]
mov eax, dword [0x14061265c]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405a0ba0]
mov edx, eax
xor edx, 0x5f8e800
and eax, 0x5f8e800
lea eax, [rdx + rax*2]
add eax, 0xb1638e74
cmp ecx, eax
jne 0x140154260
nop
mov edx, dword [rdi + r12*8]
add rdx, qword [rsi + 8]
movsxd r8, dword [rdi + r12*8 + 4]
mov eax, dword [0x14061265c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140154280
nop
mov eax, dword [0x14061265c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140154260
jmp 0x140154240
lea rcx, [rbp - 0x54]
mov r9, rdx
call fcn.140311b20
inc r12
cmp r12, r14
jne 0x140154210
lea rcx, [rbp - 0x54]
call fcn.140311330
mov eax, dword [0x14061265c]
mov ecx, dword [0x1405a0ba0]
not ecx
add ecx, eax
imul ecx, eax
test cl, 1
nop word [rax + rax]
mov eax, dword [0x14061265c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401542c0
xor eax, eax
sub eax, dword [0x1405a0ba0]
mov ecx, eax
xor ecx, 0x48a3898c
and eax, 0x48a3898c
lea eax, [rcx + rax*2]
lea rcx, [fcn.140153ea0]
lea edx, [rcx + rcx]
add edx, 0x20e0
mov r8d, edx
not r8d
and edx, r8d
add ecx, ecx
add ecx, 0x20e1
and r8d, 0xfffffffe
xor r8d, ecx
or r8d, edx
not r8d
add r8d, eax
nop word [rax + rax]
lea rax, [fcn.140153ea0]
add eax, eax
add eax, 0x3e40
mov ecx, eax
not ecx
test ecx, eax
jne 0x140154320
mov eax, dword [0x1405a0ba0]
mov ecx, eax
not ecx
mov edx, eax
xor edx, 0xb75c7675
and eax, edx
mov r8d, ecx
and r8d, 0xb75c7675
or r8d, eax
and ecx, 0x48a3898a
or ecx, edx
not ecx
lea eax, [r8 + rcx*2]
lea rcx, [fcn.140153ea0]
add ecx, ecx
add ecx, 0x1c80
mov edx, ecx
xor edx, eax
not ecx
xor eax, ecx
and eax, ecx
or eax, edx
cmp eax, 0xffffffff
jne 0x140154468
jmp 0x140154443
xor edx, edx
xor r15d, r15d
nop word cs:[rax + rax]
movsxd r8, edx
add r8, r14
test cl, cl
jne 0x140154400
movzx r9d, byte [r8]
mov r10d, dword [0x140612660]
cmp r10d, 0x19
jg 0x140154400
mov r8d, dword [0x14061265c]
mov r10d, r8d
not r10d
add r10d, 0xfffffffe
imul r10d, r8d
test r10b, 1
mov r8d, dword [0x14061265c]
lea r10d, [r8 + 1]
imul r10d, r8d
test r10b, 1
jne 0x1401543d4
xor r15b, r9b
inc edx
cmp edx, r12d
jl 0x1401543a0
jmp 0x14015419c
mov r9d, dword [0x140612660]
cmp r9d, 0x1a
jg 0x140154430
nop dword [rax]
movzx r9d, byte [r8]
mov r9d, dword [0x14061265c]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x1401543aa
nop dword [rax]
movzx r9d, byte [r8]
mov r9d, dword [0x140612660]
cmp r9d, 0x50
jge 0x140154430
jmp 0x140154410
movzx eax, byte [0x1404ccc68]
mov ecx, dword [0x14061265c]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xb75c7674
add ecx, dword [0x1405a0ba0]
cmp edx, ecx
je 0x1401544a4
lea rax, [fcn.140153ea0]
add eax, eax
add eax, 0xa80
nop word cs:[rax + rax]
movzx ecx, byte [0x1404ccc68]
mov ecx, dword [0x1405a0ba0]
mov edx, ecx
xor edx, 0xb75c7675
and ecx, 0x375c7675
lea ecx, [rdx + rcx*2]
test eax, ecx
jne 0x140154480
jmp 0x140154443
xor ecx, ecx
cmp ebx, 1
sbb ecx, ecx
sub al, r15b
mov edx, dword [0x140612660]
cmp edx, 0x29
jg 0x1401544cd
mov edx, dword [0x14061265c]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x140154504
mov edx, 0xb75c7674
nop word cs:[rax + rax]
mov r8d, dword [0x14061265c]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x1405a0ba0]
add r8d, edx
cmp r9d, r8d
jne 0x1401544e0
jmp 0x1401544b9
movzx edx, byte [0x1405a0bb0]
add dl, 0xfc
xor dl, cl
xor cl, al
mov r8d, edx
xor r8b, al
not al
mov r9d, r8d
not r9b
and al, dl
or al, r9b
not al
and r8b, dl
or r8b, al
and r8b, dl
or r8b, cl
not r8b
movzx eax, r8b
add dword [0x140612664], eax
add rsp, 0x198
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret