Function at 0x1403073a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, qword [rcx + 0x30]
cmp rax, qword [rcx + 0x28]
jne 0x140307b5e
mov rsi, rcx
mov rax, qword [rcx]
mov r15, qword [rax + 0x378]
sub r15, qword [rax + 0x370]
mov r13, qword [rax + 0x350]
sar r15, 5
movabs r12, 0xcccccccccccccccd
imul r15, r12
sub r13, qword [rax + 0x348]
sar r13, 3
lea eax, [r15 + 0x1f]
cdq
idiv r15d
cmp eax, 3
mov ecx, 2
cmovge ecx, eax
movabs rdi, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x40], rcx
lea eax, [rcx + 6]
mov dword [rsi + 8], eax
lea rcx, [rsi + 0x10]
movsxd rdx, r15d
mov r9, qword [rsi + 0x10]
mov rax, qword [rsi + 0x18]
mov r8, rax
sub r8, r9
sar r8, 4
imul r8, r12
cmp rdx, r8
jae 0x14030747f
lea rdx, [rdx + rdx*4]
shl rdx, 4
lea rcx, [r9 + rdx]
cmp rcx, rax
je 0x1403074a5
add rdx, r9
add rdx, 0x50
xorps xmm0, xmm0
nop dword [rax + rax]
movups xmmword [rdx - 0x14], xmm0
movups xmmword [rdx - 0x20], xmm0
movups xmmword [rdx - 0x30], xmm0
movups xmmword [rdx - 0x40], xmm0
movups xmmword [rdx - 0x50], xmm0
cmp rdx, rax
je 0x1403074a5
add rdx, 0x50
jmp 0x140307460
jbe 0x1403074a9
mov r10, qword [rsi + 0x20]
sub r10, r9
sar r10, 4
imul r10, r12
cmp r10, rdx
jae 0x14030758e
lea r8, [rsp + 0x28]
call fcn.140308560
jmp 0x1403074a9
mov qword [rsi + 0x18], rcx
imul r13, rdi
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
sub rcx, rax
shr rcx, 4
imul ecx, ecx, 0xcccccccd
mov edx, 0xe45954be
add edx, dword [0x140511ce0]
movabs r10, 0x9331470a8b62613a
cmp ecx, edx
jle 0x14030753d
xor edx, edx
nop dword [rax]
mov rcx, qword [rsi]
mov rcx, qword [rcx + 0x3a8]
lea r8, [rdx + rdx*4]
shl r8, 4
mov qword [rax + r8 + 0x18], rcx
mov rcx, qword [0x140511ce8]
add rdx, r10
add rdx, rcx
mov rax, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
sub r8, rax
shr r8, 4
imul r8d, r8d, 0xcccccccd
shl r8, 0x20
add ecx, 0x667cb1b6
mov r9d, ecx
xor r9d, 0xa3
and ecx, 0x23
lea ecx, [r9 + rcx*2]
sar r8, cl
cmp rdx, r8
jl 0x1403074e0
lea rdi, [rsi + 0x40]
movsxd rdx, r13d
mov rax, qword [rsi + 0x40]
mov rcx, qword [rsi + 0x48]
mov r9, rcx
sub r9, rax
sar r9, 1
mov r8, rdx
sub r8, r9
jae 0x14030756a
lea rax, [rax + rdx*2]
mov qword [rsi + 0x48], rax
jmp 0x140307600
jbe 0x140307600
mov r9, qword [rsi + 0x50]
sub r9, rax
sar r9, 1
cmp r9, rdx
jae 0x1403075ee
lea r8, [rsp + 0x30]
mov rcx, rdi
call fcn.140308a50
jmp 0x140307600
mov rcx, rdx
sub rcx, r8
je 0x140307b79
not r8
add rdx, r8
mov r8, rcx
and r8, 7
je 0x140307b6f
add rax, 0x50
dec r8
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rax - 0x14], xmm0
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x30], xmm0
movups xmmword [rax - 0x40], xmm0
movups xmmword [rax - 0x50], xmm0
mov r9, rcx
not r9
lea rcx, [r9 + rcx*2]
sub r8, 1
jb 0x140307b6f
add rax, 0x50
jmp 0x1403075c0
lea rbx, [rcx + r8*2]
add r8, r8
xor edx, edx
call fcn.1403e40c0
mov qword [rsi + 0x48], rbx
test r15d, r15d
jle 0x140307685
mov rcx, r15
not rcx
mov edx, 0xffffffff
xor rdx, r15
movabs rax, 0xffffffff00000000
and rax, rcx
or rax, rdx
add rax, 2
xor ecx, ecx
xor edx, edx
nop
mov r8, qword [rsi]
mov r9, qword [rsi + 0x10]
mov r8, qword [r8 + 0x370]
lea r10, [r8 + rcx]
mov r11d, dword [r8 + rcx + 0x18]
mov qword [r9 + rdx], 1
mov dword [r9 + rdx + 0x44], r11d
mov r9, qword [rsi + 0x10]
mov qword [r9 + rdx + 0x10], r10
movsxd r8, dword [r8 + rcx + 0x24]
movzx r9d, word [rsi + 8]
mov r10, qword [rsi + 0x40]
add word [r10 + r8*2], r9w
test rax, rax
je 0x140307685
add rdx, 0x50
add rcx, 0xa0
inc rax
jmp 0x140307630
xor r9d, r9d
test r13d, r13d
jle 0x140307781
mov rax, qword [0x140511ce8]
movabs rcx, 0x1846a338e23da12
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
movabs rcx, 0x91acdcd7fd3e8726
add rcx, rax
mov rax, r13
xor rax, rcx
or rcx, r13
not rcx
or rcx, rax
not rcx
lea rax, [rcx - 1]
and r13d, 3
cmp rax, 3
jae 0x1403076e0
xor eax, eax
jmp 0x140307758
sub rcx, r13
xor eax, eax
xor r9d, r9d
xor edx, edx
nop word [rax + rax]
mov r8, qword [rdi]
lea r10, [rax + rax]
movzx r11d, word [r8 + rax*2]
add r11d, r9d
mov word [r8 + rax*2], r11w
mov r8, qword [rdi]
movzx r9d, word [r8 + rax*2 + 2]
add r9d, r11d
mov word [r8 + rax*2 + 2], r9w
mov r8, qword [rdi]
mov r11, r10
or r11, 4
movzx ebx, word [r8 + r11]
add ebx, r9d
mov word [r8 + r11], bx
mov r8, qword [rdi]
or r10, 6
movzx r9d, word [r8 + r10]
add r9d, ebx
mov word [r8 + r10], r9w
mov r8, rdx
xor r8, 4
and edx, 4
lea rdx, [r8 + rdx*2]
add rax, 4
cmp rdx, rcx
jne 0x1403076f0
test r13, r13
je 0x14030777e
dec r13
mov ecx, r9d
mov rdx, qword [rdi]
movzx r9d, word [rdx + rax*2]
add r9d, ecx
mov word [rdx + rax*2], r9w
sub r13, 1
jb 0x14030777e
inc rax
jmp 0x140307760
mov r9d, r9d
lea rdi, [rsi + 0x28]
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x30]
mov r8, rcx
sub r8, rdx
sar r8, 4
imul r8, r12
cmp r9, r8
jae 0x1403077df
lea r8, [r9 + r9*4]
shl r8, 4
lea rax, [rdx + r8]
cmp rax, rcx
je 0x140307831
add rdx, r8
add rdx, 0x50
xorps xmm0, xmm0
nop
movups xmmword [rdx - 0x14], xmm0
movups xmmword [rdx - 0x20], xmm0
movups xmmword [rdx - 0x30], xmm0
movups xmmword [rdx - 0x40], xmm0
movups xmmword [rdx - 0x50], xmm0
cmp rdx, rcx
je 0x140307831
add rdx, 0x50
jmp 0x1403077c0
jbe 0x140307835
mov rax, qword [rsi + 0x38]
movabs r10, 0x9331470a8b626189
add r10, qword [0x140511ce8]
sub rax, rdx
mov rdx, rax
or rdx, r10
shr rdx, 0x20
je 0x140307a8a
cqo
idiv r10
cmp rax, r9
jae 0x140307a98
lea r8, [rsp + 0x38]
mov rcx, rdi
mov rdx, r9
call fcn.140308560
test r15d, r15d
jg 0x14030783e
jmp 0x140307afb
mov qword [rsi + 0x30], rax
test r15d, r15d
jle 0x140307afb
mov eax, r15d
mov ecx, 0xe45954bf
add ecx, dword [0x140511ce0]
mov rdx, qword [rsp + 0x40]
and edx, 0x7ffffffe
add edx, 0xfffffffe
xor r8d, r8d
mov r10d, 0xe45954c4
movabs r11, 0x9331470a8b62613b
xor r15d, r15d
jmp 0x14030788c
inc r8
cmp r8, rax
je 0x140307afb
mov rbx, qword [rsi]
mov r12, qword [rbx + 0x370]
lea r13, [r8 + r8*4]
shl r13, 5
mov ebx, dword [0x140511ce0]
mov r9d, 0xe45954be
add ebx, r9d
movsxd r15, r15d
cmp dword [rsi + 8], ebx
jle 0x140307900
lea rbp, [r12 + r13]
mov rbx, qword [0x1405317a0]
add rbx, r15
lea r14, [rbx + rbx*4]
shl r14, 4
add r14, 0x10
mov ebx, 1
nop word cs:[rax + rax]
mov r9, qword [rsi + 0x28]
mov qword [r9 + r14], rbp
movsxd r9, dword [rsi + 8]
cmp rbx, r9
jge 0x140307900
add r14, 0x50
inc rbx
jmp 0x1403078e0
mov ebx, dword [r12 + r13 + 0x18]
mov r14d, ebx
and r14d, 0x30000000
mov ebp, ebx
and ebp, 0xffbfc000
cmp r14d, 0x20000000
cmove ebp, ebx
mov ebx, ebp
not ebx
mov r14d, ebp
xor r14d, 0xffbfffff
xor ebp, 0x400000
and ebp, ebx
or ebp, r14d
not ebp
mov rbx, qword [rdi]
lea r14, [r15 + r15*4]
shl r14, 4
mov qword [rbx + r14], 6
mov dword [rbx + r14 + 0x44], ebp
lea ebx, [r15 + 1]
movsxd rbx, ebx
mov r14, qword [rdi]
lea rbx, [rbx + rbx*4]
shl rbx, 4
mov qword [r14 + rbx], 2
mov dword [r14 + rbx + 0x44], ebp
lea ebx, [r15 + 2]
movsxd rbx, ebx
mov r14, qword [rdi]
lea rbx, [rbx + rbx*4]
shl rbx, 4
mov qword [r14 + rbx], 3
mov dword [r14 + rbx + 0x44], ebp
lea ebx, [r15 + 3]
movsxd rbx, ebx
mov r14, qword [rdi]
lea rbx, [rbx + rbx*4]
shl rbx, 4
mov qword [r14 + rbx], 7
mov dword [r14 + rbx + 0x44], ebp
lea ebx, [r15 + 4]
movsxd rbx, ebx
mov r14, qword [rdi]
lea rbx, [rbx + rbx*4]
shl rbx, 4
mov qword [r14 + rbx], 5
mov dword [r14 + rbx + 0x44], ebp
lea ebx, [r15 + 5]
movsxd rbx, ebx
mov r14, qword [rdi]
lea rbx, [rbx + rbx*4]
shl rbx, 4
mov qword [r14 + rbx], 1
mov dword [r14 + rbx + 0x44], ebp
mov ebx, dword [0x140511ce0]
add ebx, r10d
xor ebx, r15d
mov r14d, ebx
not r14d
and r14d, r15d
lea ebx, [rbx + r14*2]
movsxd r15, ebx
mov r12d, edx
nop
mov r9, qword [rdi]
mov rbx, r15
shl rbx, 4
lea rbx, [rbx + rbx*4]
mov qword [r9 + rbx], 1
mov dword [r9 + rbx + 0x44], ebp
mov r9, qword [rdi]
mov qword [r9 + rbx + 0x50], 1
mov dword [r9 + rbx + 0x94], ebp
add r15, qword [0x140511ce8]
add r15, r11
test r12d, r12d
je 0x140307a60
add r12d, 0xfffffffe
jmp 0x140307a10
test dword [rsp + 0x40], ecx
je 0x140307880
mov r9, qword [rdi]
lea rbx, [r15 + r15*4]
shl rbx, 4
mov qword [r9 + rbx], 1
mov dword [r9 + rbx + 0x44], ebp
inc r15
jmp 0x140307880
xor edx, edx
div r10d
cmp rax, r9
jb 0x140307817
mov rax, r9
sub rax, r8
je 0x140307aee
not r8
add r9, r8
mov rdx, rax
not rdx
mov r8d, edx
and r8d, 7
mov r10, rax
and r10, 0xfffffffffffffff8
or r10, r8
and rdx, 0xfffffffffffffff8
or rdx, r10
mov r8, rdx
not r8
movabs r10, 0x9331470a8b626139
add r10, qword [0x140511ce8]
cmp r8, r10
jne 0x140307b82
cmp r9, 7
jae 0x140307bd0
mov qword [rsi + 0x30], rcx
test r15d, r15d
jg 0x14030783e
mov rax, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x30]
sub rcx, rax
shr rcx, 4
imul ecx, ecx, 0xcccccccd
test ecx, ecx
movabs r9, 0x9331470a8b62613a
jle 0x140307b5e
xor ecx, ecx
mov rdx, qword [rsi]
mov rdx, qword [rdx + 0x3a8]
lea r8, [rcx + rcx*4]
shl r8, 4
mov qword [rax + r8 + 0x18], rdx
add rcx, qword [0x140511ce8]
add rcx, r9
mov rax, qword [rsi + 0x28]
mov rdx, qword [rsi + 0x30]
sub rdx, rax
shr rdx, 4
imul edx, edx, 0xcccccccd
movsxd rdx, edx
cmp rcx, rdx
jl 0x140307b20
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rdx, 7
jae 0x140307d2f
mov qword [rsi + 0x18], rax
jmp 0x1403074a9
add rcx, 0x50
add rdx, 2
xorps xmm0, xmm0
movabs r8, 0x9331470a8b626138
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
add rax, qword [0x140511ce8]
add rax, r8
test rdx, rdx
je 0x140307ae4
add rcx, 0x50
inc rdx
jmp 0x140307ba0
add rax, 0xfffffffffffffff8
add rcx, 0x280
xorps xmm0, xmm0
nop
movups xmmword [rcx - 0x244], xmm0
movups xmmword [rcx - 0x250], xmm0
movups xmmword [rcx - 0x260], xmm0
movups xmmword [rcx - 0x270], xmm0
movups xmmword [rcx - 0x280], xmm0
movups xmmword [rcx - 0x230], xmm0
movups xmmword [rcx - 0x220], xmm0
movups xmmword [rcx - 0x210], xmm0
movups xmmword [rcx - 0x200], xmm0
movups xmmword [rcx - 0x1f4], xmm0
movups xmmword [rcx - 0x1e0], xmm0
movups xmmword [rcx - 0x1d0], xmm0
movups xmmword [rcx - 0x1c0], xmm0
movups xmmword [rcx - 0x1b0], xmm0
movups xmmword [rcx - 0x1a4], xmm0
movups xmmword [rcx - 0x190], xmm0
movups xmmword [rcx - 0x180], xmm0
movups xmmword [rcx - 0x170], xmm0
movups xmmword [rcx - 0x160], xmm0
movups xmmword [rcx - 0x154], xmm0
movups xmmword [rcx - 0x104], xmm0
movups xmmword [rcx - 0x110], xmm0
movups xmmword [rcx - 0x120], xmm0
movups xmmword [rcx - 0x130], xmm0
movups xmmword [rcx - 0x140], xmm0
movups xmmword [rcx - 0xf0], xmm0
movups xmmword [rcx - 0xe0], xmm0
movups xmmword [rcx - 0xd0], xmm0
movups xmmword [rcx - 0xc0], xmm0
movups xmmword [rcx - 0xb4], xmm0
movups xmmword [rcx - 0xa0], xmm0
movups xmmword [rcx - 0x90], xmm0
movups xmmword [rcx - 0x80], xmm0
movups xmmword [rcx - 0x70], xmm0
movups xmmword [rcx - 0x64], xmm0
movups xmmword [rcx - 0x50], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x14], xmm0
test rax, rax
setne r9b
sete dl
movzx r8d, byte [0x140532608]
xor dl, r8b
not r8b
and r8b, r9b
or r8b, dl
xor r8b, 1
mov r9d, r8d
and r9b, dl
test r9b, 1
jne 0x140307aee
xor r8b, dl
test r8b, 1
jne 0x140307aee
add rax, 0xfffffffffffffff8
add rcx, 0x280
jmp 0x140307be0
add rcx, 0xfffffffffffffff8
add rax, 0x280
xorps xmm0, xmm0
nop dword [rax]
movups xmmword [rax - 0x244], xmm0
movups xmmword [rax - 0x250], xmm0
movups xmmword [rax - 0x260], xmm0
movups xmmword [rax - 0x270], xmm0
movups xmmword [rax - 0x280], xmm0
movups xmmword [rax - 0x230], xmm0
movups xmmword [rax - 0x220], xmm0
movups xmmword [rax - 0x210], xmm0
movups xmmword [rax - 0x200], xmm0
movups xmmword [rax - 0x1f4], xmm0
movups xmmword [rax - 0x1e0], xmm0
movups xmmword [rax - 0x1d0], xmm0
movups xmmword [rax - 0x1c0], xmm0
movups xmmword [rax - 0x1b0], xmm0
movups xmmword [rax - 0x1a4], xmm0
movups xmmword [rax - 0x190], xmm0
movups xmmword [rax - 0x180], xmm0
movups xmmword [rax - 0x170], xmm0
movups xmmword [rax - 0x160], xmm0
movups xmmword [rax - 0x154], xmm0
movups xmmword [rax - 0x104], xmm0
movups xmmword [rax - 0x110], xmm0
movups xmmword [rax - 0x120], xmm0
movups xmmword [rax - 0x130], xmm0
movups xmmword [rax - 0x140], xmm0
movups xmmword [rax - 0xf0], xmm0
movups xmmword [rax - 0xe0], xmm0
movups xmmword [rax - 0xd0], xmm0
movups xmmword [rax - 0xc0], xmm0
movups xmmword [rax - 0xb4], xmm0
movups xmmword [rax - 0xa0], xmm0
movups xmmword [rax - 0x90], xmm0
movups xmmword [rax - 0x80], xmm0
movups xmmword [rax - 0x70], xmm0
movups xmmword [rax - 0x64], xmm0
movups xmmword [rax - 0x50], xmm0
movups xmmword [rax - 0x40], xmm0
movups xmmword [rax - 0x30], xmm0
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x14], xmm0
test rcx, rcx
je 0x140307b79
add rcx, 0xfffffffffffffff8
add rax, 0x280
jmp 0x140307d40