Function at 0x140152950
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov r8, rdx
mov rsi, rcx
mov eax, dword [str.eD]
imul eax, dword [0x14021005c]
and eax, 0x14020558
add eax, 0x3cdba0c8
mov ecx, eax
not ecx
and ecx, 0x3c0648ab
mov edx, eax
and edx, 0x40918750
imul edx, ecx
mov ecx, eax
and ecx, 0x3c4e20a8
or eax, 0x3c4e68ab
imul eax, ecx
add eax, edx
cmp eax, 0xaa29aa45
jae 0x1401529d0
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
nop word cs:[rax + rax]
mov eax, dword [0x140210060]
xor edx, edx
div dword [0x140210064]
mov ecx, eax
or eax, 0xe1032b52
mov edx, ecx
not edx
and edx, 0x6d0c4a4
mov r9d, eax
and r9d, 0x992f3b49
imul r9d, edx
and eax, 0x66d0c4b6
or ecx, 0xe7d3eff6
imul ecx, eax
add ecx, r9d
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.1401516e0
sub rsp, rax
mov rbx, rsp
cmp ecx, 0xc38e7775
je 0x1401529d0
nop word cs:[rax + rax]
mov eax, dword [0x140210068]
or eax, dword [0x14021006c]
and eax, 0x46ee0bd3
add eax, 0x3e1977c2
cmp eax, 0x574a2f79
jb 0x140152a40
cmp r8, 0xffffffffffffffff
je 0x140152d9d
inc r8
nop word [rax + rax]
mov eax, dword [0x140210070]
add eax, dword [0x140210074]
mov ecx, eax
xor ecx, 0xa311028
xor eax, 0xf14e6f16
mov edx, eax
and edx, 0xa58eecd7
and ecx, 0x5a711328
imul ecx, edx
mov edx, eax
and edx, 0x5a711328
or eax, 0x5a711328
imul eax, edx
add eax, ecx
not eax
or eax, 0x29714109
cmp eax, 0xef4d310
jb 0x140152a70
mov r9, qword [rsi]
lea rax, [r9 + r9]
cmp rax, r8
cmova r8, rax
cmp r8, 5
mov r12d, 4
cmovae r12, r8
movabs rdx, 0x555555555555556
mov rcx, r12
and rcx, 0xffffffffffffffe7
mov r14, r12
or r14, 0x18
nop
xor r15d, r15d
cmp r12, rdx
setb al
mov r8d, dword [0x140210078]
mov r10d, dword [0x14021007c]
mov r11d, r10d
not r11d
and r11d, r8d
xor r10d, r8d
add r10d, r8d
sub r10d, r11d
mov r8d, r10d
xor r8d, 0xd4d5faf2
or r10d, 0x2b2a050d
and r10d, r8d
mov r8d, r10d
xor r8d, 0x300b054
xor r10d, 0x84824100
and r10d, 0xece6430a
and r8d, 0x1319bcf5
or r8d, r10d
cmp r8d, 0xdf6a575d
je 0x140152af0
mov edx, r12d
not edx
and edx, 0x18
imul rcx, rdx
mov edx, r12d
and edx, 0x18
imul r14, rdx
mov r15b, al
test r9, r9
je 0x140152bbd
mov eax, dword [0x140210080]
xor edx, edx
div dword [0x140210084]
mov edx, 0xc64b0487
imul rdx, rax
shr rdx, 0x3f
lea eax, [rdx - 0x7c459f72]
add edx, edx
sub edx, eax
mov eax, edx
and eax, 0x58d37
shl eax, 0xd
or edx, 0x44003240
imul edx, edx, 0x44001240
add edx, eax
cmp edx, 0x18611a5a
jne 0x140152bc5
jmp 0x140152bd2
xor r13d, r13d
jmp 0x140152c98
mov rax, qword [rsi + 8]
mov qword [rdi], rax
xor eax, eax
test al, al
je 0x140152bdb
mov rax, qword [rsi + 8]
mov qword [rdi], rax
jmp 0x140152bc5
mov eax, r9d
not eax
and eax, 0x18
mov rdx, r9
and rdx, 0xffffffffffffffe7
imul rdx, rax
mov eax, r9d
and eax, 0x18
or r9, 0x18
imul r9, rax
add r9, rdx
mov eax, dword [0x140210088]
sub eax, dword [0x14021008c]
and eax, 0x95669310
add eax, 0x30134c00
mov edx, eax
not edx
mov r8d, eax
and r8d, 0xd553ce00
and edx, 0x202c311b
imul edx, r8d
mov r8d, eax
and r8d, 0x202c1110
or eax, 0x202c311b
imul eax, r8d
add eax, edx
cmp eax, 0x123c0bfe
jae 0x140152c4d
mov qword [rdi + 0x10], r9
mov r8d, 0xe84595c1
nop word cs:[rax + rax]
mov eax, dword [0x140210090]
xor edx, edx
div dword [0x140210094]
and eax, 0xd298074e
mov rdx, rax
imul rdx, r8
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1c
mov qword [rdi + 0x10], r9
cmp eax, 0x562bf957
je 0x140152c60
mov r13d, 8
mov qword [rbp], r12
add r14, rcx
shl r15, 3
mov eax, dword [0x140210098]
sub eax, dword [0x14021009c]
xor eax, 0xc65419e
add eax, 0x86120e86
mov ecx, eax
and ecx, 0x3eea8c0e
add ecx, ecx
sub eax, ecx
add eax, 0x3eea8c0e
cmp eax, 0xa266382c
jae 0x140152cee
mov qword [rdi + 8], r13
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
mov r8, r14
mov r9, rdi
call fcn.1400ac0c0
add rsp, 0x20
mov r12, r14
nop word cs:[rax + rax]
mov eax, dword [0x1402100a0]
mov ecx, dword [0x1402100a4]
not eax
not ecx
or ecx, eax
mov eax, ecx
not eax
and eax, 0xa612e80
xor ecx, 0x759ed17f
lea r14d, [rcx + rax*2]
xor r14d, 0x693ff888
mov eax, r14d
and eax, 0x96434b21
or r14d, 0x96434b21
add r14d, eax
mov qword [rdi + 8], r13
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
mov r8, r12
mov r9, rdi
call fcn.1400ac0c0
add rsp, 0x20
cmp r14d, 0x4aad5d89
je 0x140152d00
cmp qword [rbx], 0
jne 0x140152d9d
mov rax, qword [rbx + 8]
mov ecx, dword [0x1402100b0]
mov edx, dword [0x1402100b4]
not ecx
not edx
or edx, ecx
xor edx, 0x2000008
or edx, 0xe57fd7f6
cmp edx, 0xe9df3fe7
mov r9, qword [rbp]
jne 0x140152df2
jmp 0x140152e41
ud2
mov ecx, dword [0x1402100b8]
xor ecx, dword [0x1402100bc]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xb8e5f29f
and edx, 0x471a0d60
imul edx, r8d
mov r8d, ecx
and r8d, 0x471a0d60
or ecx, 0x471a0d60
imul ecx, r8d
add ecx, edx
or ecx, 0x6b7cbfaf
mov qword [rsi + 8], rax
mov qword [rsi], r9
cmp ecx, 0xa4fa1221
jne 0x140152e4a
mov qword [rsi + 8], rax
mov qword [rsi], r9
jmp 0x140152df2
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret