Function at 0x1403522d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov dword [rbp - 4], r8d
mov rbx, rdx
mov r14, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140352302
mov rbx, qword [rbx]
mov rdi, qword [rcx + 0x10]
cmp r14, 0xf
ja 0x140352321
lea rax, [rbp - 0x28]
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov r15d, 0xf
jmp 0x1403523eb
movabs rax, 0x12f26a94aad9f39f
add rax, qword [0x1405402d8]
mov rcx, r14
xor rcx, rax
not rcx
mov r15, rcx
and r15, r14
not r15
or rax, r14
and r15, rcx
or r15, rax
not r15
or r15, rax
movabs rax, 0x7fffffffffffffff
cmp r15, rax
cmovae r15, rax
cmp r15, 0xfff
setae cl
movzx eax, byte [0x14055ca54]
xor al, cl
mov edx, eax
not dl
test dl, cl
jne 0x1403523a2
test al, 1
jne 0x1403523a2
lea rcx, [r15 + 1]
mov edx, 0x111ac71d
mov r8d, 0x74ee7cbe
mov r9d, 0x3ff9cc80
call fcn.140352f30
mov rcx, rax
jmp 0x1403523db
mov rax, qword [0x1405402d8]
add rax, r15
movabs rcx, 0x12f26a94aad9f3b8
add rcx, rax
mov edx, 0x111ac71d
mov r8d, 0x74ee7cbe
mov r9d, 0x3ff9cc80
call fcn.140352f30
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
mov qword [rbp - 0x28], rcx
lea r8, [r14 + 1]
mov rdx, rbx
call fcn.14040cc90
mov qword [rbp - 0x18], r14
mov r12, qword [0x140540208]
movsxd r14, dword [r12]
mov r13d, 0xb32332b0
lea rax, [fcn.1403522d0]
lea esi, [rax + rax]
add esi, 0x4180
lea rbx, [0x140352eb0]
nop word [rax + rax]
mov eax, dword [0x14055ee40]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140352452
mov eax, dword [0x1405402d0]
add eax, r13d
mov ecx, eax
xor ecx, 0xad3badeb
and eax, 0x2d3badeb
lea eax, [rcx + rax*2]
xor eax, esi
not eax
test eax, esi
je 0x14035248f
mov ecx, 0x38
mov edx, 0x4ac5f3a5
mov r8d, 0x1e322521
mov r9d, 0x666f6c5a
call fcn.140126550
mov qword [0x14055ee38], rax
mov rcx, rbx
call fcn.1403e5350
mov eax, dword [0x14055ee40]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140352420
jmp 0x140352431
mov ebx, dword [0x14044c74c]
mov qword [rbp - 0x10], r15
lea rax, [0x140427b38]
mov qword [rbp - 0x30], rax
lea r8, [rbp - 0x30]
mov edx, 0x28
mov rcx, rdi
call fcn.1403c13d0
mov r8, qword [rbp - 0x10]
cmp r8, 0x10
setb al
setae dl
movzx ecx, byte [0x14055c4e0]
test cl, dl
jne 0x1403524e1
mov r9d, ecx
not r9b
and r9b, dl
jne 0x1403524e1
and cl, al
je 0x1403526fe
mov rcx, qword [rbp - 0x28]
mov rax, r8
not rax
movabs rdx, 0x7ffffffffffffffe
and rdx, rax
and eax, 1
mov r9, r8
and r9, 0xfffffffffffffffe
or r9, rax
mov rax, r8
xor rax, 1
or rdx, rax
not rdx
add rdx, rdx
xor rdx, r9
mov rax, rdx
not rax
and rax, r9
lea rdx, [rdx + rax*2]
cmp rdx, 0x1000
jb 0x1403526ed
add r14, r12
nop word cs:[rax + rax]
mov eax, dword [0x14055ee30]
mov edx, dword [0x14055ee44]
cmp edx, 0x2b
jg 0x140352540
lea edx, [rax + 1]
mov dword [0x14055ee30], edx
mov r9d, eax
not r9d
xor eax, edx
not edx
and edx, r9d
or edx, eax
xor edx, 0xffffffff
jne 0x140352576
test ebx, ebx
jg 0x140352602
xor eax, eax
mov r9, qword [rcx - 8]
movabs r10, 0x1d76b7793ae59477
add r10, rcx
movabs rcx, 0x1b19af3aa06cf57c
mov r11, r10
xor r11, rcx
and r10, rcx
lea rcx, [r11 + r10*2]
sub rcx, r9
movabs r10, 0xc76f994c24ad7605
add r10, rcx
cmp r10, 0x20
jae 0x140352673
movzx r10d, word [0x14044c748]
movzx ecx, word [0x1405402e0]
mov r11d, ecx
xor r11d, 0x375f
and ecx, 0x375f
lea r11d, [r11 + rcx*2]
cmp edx, 1
adc r11w, 0xffff
neg r11d
mov ecx, dword [0x14055ee40]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x140352689
jmp 0x140352678
mov r9d, 2
xor eax, eax
mov r10d, 0x605ee0db
lea r11d, [r9 - 2]
mov esi, dword [0x14055ee44]
nop word [rax + rax]
mov esi, dword [0x14055ee44]
mov r15d, dword [0x1405402d0]
add r15d, r10d
cmp esi, r15d
jge 0x140352620
movsxd r11, r11d
add r11, r14
movzx r11d, word [r11]
mov esi, eax
xor esi, r11d
not r11d
mov r15d, eax
xor r15d, r11d
and r11d, eax
or r11d, r15d
not r11d
and esi, eax
mov eax, r11d
and eax, esi
xor esi, r11d
xor esi, eax
mov eax, esi
cmp r9d, ebx
jge 0x140352578
add r9d, 2
jmp 0x140352610
call fcn.1403c4adc
mov ecx, dword [0x14055ee40]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1403526b4
mov ecx, 0x605ee09b
lea rdx, [fcn.1403522d0]
add edx, edx
add edx, 0x2ca0
nop dword [rax]
mov esi, dword [0x1405402d0]
add esi, ecx
mov ebx, edx
xor ebx, esi
not ebx
test ebx, esi
jne 0x1403526a0
jmp 0x140352678
sub r10d, eax
mov ecx, r11d
xor ecx, r10d
not ecx
mov edx, ecx
xor edx, r11d
not edx
movzx r10d, byte [0x14055c4e0]
xor eax, eax
test al, al
jne 0x14035274e
jmp 0x140352715
add r8, qword [0x1405402d8]
movabs rdx, 0x12f26a94aad9f3b8
add rdx, r8
mov rcx, r9
mov r8d, 0xc524c850
mov r9d, 0x24eee918
call fcn.1400a7e90
mov eax, dword [rbp - 4]
mov dword [rdi + 0x20], eax
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test dx, cx
sete al
setne r11b
mov ebx, r10d
not bl
and bl, al
xor r11b, r10b
or bl, r11b
not bl
or bl, r11b
and bl, 1
mov byte [0x14055c4e0], bl
mov eax, dword [0x14055ee40]
lea r11d, [rax - 1]
imul r11d, eax
test r11b, 1
je 0x1403526d6
mov eax, edx
and eax, ecx
cmp ax, 1
mov r11d, r10d
sbb r11b, 0xff
mov eax, r10d
sub al, r11b
mul r11b
mov r11d, 0x605ee0ce
add r11d, dword [0x1405402d0]
mov dword [0x14055ee44], r11d
and al, 1
mov byte [0x14055c4e0], al
jmp 0x140352715