Function at 0x140020094
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
lea rbp, [rsp + 0x20]
movaps xmmword [rbp + 0xc0], xmm6
mov r14, rcx
movaps xmmword [rbp + 0xb0], xmm7
lea rcx, [0x14034b0dc]
movaps xmmword [rbp + 0xa0], xmm8
mov r13d, r9d
movaps xmmword [rbp + 0x90], xmm9
mov rbx, rdx
movaps xmmword [rbp + 0x80], xmm10
movaps xmmword [rbp + 0x70], xmm11
movsxd rdi, r8d
call fcn.140026484
cmp edi, 2
jl 0x140020c39
mov rax, qword [r14 + 0x38]
lea esi, [rdi - 1]
movss xmm6, dword [rbp + 0x148]
xor r15d, r15d
cmp byte [rbp + 0x140], r15b
movss xmm7, dword [0x14002be58]
movss xmm8, dword [rax]
cmovne esi, edi
movss xmm9, dword [rax + 4]
comiss xmm6, xmm7
movsxd r12, esi
mov dword [rbp + 8], esi
mov qword [rbp + 0x10], r12
seta al
test byte [r14 + 0x30], 1
mov byte [rbp + 0x18], al
je 0x140020a52
movzx ebx, al
mov ecx, r13d
and ecx, 0xffffff
mov dword [rbp + 0x34], ecx
lea ecx, [rbx + 3]
imul ecx, edi
neg al
sbb edx, edx
and edx, 6
add edx, 0xc
mov dword [rbp + 0x38], ecx
mov r8d, ecx
imul edx, esi
mov rcx, r14
call fcn.1400188ec
lea eax, [rbx*2 + 3]
imul eax, edi
movsxd rcx, eax
shl rcx, 3
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x1400201ac
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1400264d0
sub rsp, rax
lea r12, [rdi*8]
mov rbx, rdi
mov ecx, r15d
mov qword [rbp + 0x40], rbx
lea r13, [rsp + 0x20]
add r12, r13
mov qword [rbp + 0x20], r12
test esi, esi
jle 0x14002025e
mov rsi, qword [rbp + 0x128]
mov r12, r15
mov r14, qword [rbp + 0x10]
mov eax, ecx
lea ebx, [rcx + 1]
cmp ebx, edi
lea rcx, [rbp]
lea r8, [rsi + rax*8]
mov eax, ebx
cmove eax, r15d
cdqe
lea rdx, [rsi + rax*8]
call fcn.14001f358
movaps xmm1, xmm7
lea rcx, [rbp]
call fcn.14001f02c
movaps xmm1, xmm0
lea rcx, [rbp]
call fcn.14001f26c
movss xmm1, dword [rbp]
mov ecx, ebx
xorps xmm1, xmmword [0x14002bfc0]
movss xmm0, dword [rbp + 4]
movss dword [r13 + r12*8 + 4], xmm1
movss dword [r13 + r12*8], xmm0
inc r12
cmp r12, r14
jl 0x1400201ec
mov r14, qword [rbp + 0x120]
mov rbx, rdi
mov r12, qword [rbp + 0x20]
mov esi, dword [rbp + 8]
mov al, byte [rbp + 0x140]
test al, al
jne 0x140020276
movsd xmm0, qword [r13 + rbx*8 - 0x10]
movsd qword [r13 + rbx*8 - 8], xmm0
cmp byte [rbp + 0x18], r15b
jne 0x1400205a6
test al, al
jne 0x14002035c
movaps xmm2, xmm7
lea rcx, [rbp + 0x10]
mov rdx, r13
call fcn.14001f408
mov rsi, qword [rbp + 0x128]
lea rcx, [rbp + 0x20]
mov rdx, rsi
mov r8, rax
call fcn.14001f3b0
movaps xmm2, xmm7
lea rcx, [rbp + 0x10]
mov rdx, r13
movsd xmm0, qword [rax]
movsd qword [r12], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x20]
mov rdx, rsi
call fcn.14001f358
lea rdi, [rbx*8]
movaps xmm2, xmm7
lea rdx, [r13 - 8]
add rdx, rdi
lea rcx, [rbp + 0x10]
movsd xmm0, qword [rax]
lea rsi, [rsi + rbx*8]
movsd qword [r12 + 8], xmm0
call fcn.14001f408
mov r8, rax
lea rdx, [rsi - 8]
lea rcx, [rbp + 0x20]
call fcn.14001f3b0
mov ecx, dword [rbp + 0x130]
lea rdx, [r13 - 8]
add ecx, ecx
movaps xmm2, xmm7
movsxd rbx, ecx
add rdx, rdi
movsd xmm0, qword [rax]
lea rcx, [rbp + 0x10]
movsd qword [r12 + rbx*8 - 0x10], xmm0
call fcn.14001f408
mov r8, rax
lea rdx, [rsi - 8]
lea rcx, [rbp + 0x20]
call fcn.14001f358
mov edi, dword [rbp + 0x130]
mov esi, dword [rbp + 8]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 - 8], xmm0
mov ecx, dword [r14 + 0x48]
mov eax, r15d
mov dword [rbp + 0x1c], ecx
test esi, esi
jle 0x1400204e7
mov edx, eax
inc eax
cmp eax, edi
mov dword [rbp + 0x30], eax
mov ebx, eax
cmove ebx, r15d
jne 0x140020385
mov eax, dword [r14 + 0x48]
jmp 0x140020388
lea eax, [rcx + 3]
lea rdx, [rdx*8]
movsxd rdi, ebx
add rdx, r13
mov dword [rbp + 8], eax
lea rcx, [rbp + 0x10]
lea r8, [rdi*8]
add r8, r13
call fcn.14001f3b0
movss xmm2, dword [0x14002be04]
lea rcx, [rbp]
mov rdx, rax
call fcn.14001f408
movss xmm1, dword [rbp + 4]
movss xmm0, dword [rbp]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
comiss xmm1, dword [0x14002bd94]
jbe 0x1400203fc
movaps xmm0, xmm7
lea rcx, [rbp]
divss xmm0, xmm1
movss xmm1, dword [0x14002bee4]
minss xmm1, xmm0
call fcn.14001f26c
movaps xmm1, xmm7
lea rcx, [rbp]
call fcn.14001f26c
mov rax, qword [rbp + 0x128]
lea r8, [rbp]
lea rcx, [rbp + 0x20]
lea rdi, [rax + rdi*8]
mov rdx, rdi
call fcn.14001f3b0
lea ecx, [rbx + rbx]
mov rdx, rdi
movsxd rbx, ecx
lea r8, [rbp]
lea rcx, [rbp + 0x28]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8], xmm0
call fcn.14001f358
mov r8d, dword [rbp + 0x1c]
mov ecx, 8
mov edx, dword [rbp + 8]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 + 8], xmm0
lea r9d, [r8 + 2]
mov rax, qword [r14 + 0x58]
mov dword [rax], edx
mov rax, qword [r14 + 0x58]
mov dword [rax + 4], r8d
mov rax, qword [r14 + 0x58]
mov dword [rcx + rax], r9d
add rcx, 4
cmp rcx, 0x10
jl 0x14002046c
mov rax, qword [r14 + 0x58]
lea ecx, [rdx + 2]
lea r9d, [rdx + 1]
mov dword [rax + 0x10], ecx
lea ecx, [r8 + 1]
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x14], edx
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x18], r9d
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x1c], ecx
mov ecx, 0x20
mov rax, qword [r14 + 0x58]
mov dword [rcx + rax], r8d
add rcx, 4
cmp rcx, 0x28
jl 0x1400204ab
mov rax, qword [r14 + 0x58]
mov ecx, edx
mov edi, dword [rbp + 0x130]
mov dword [rbp + 0x1c], edx
mov dword [rax + 0x28], edx
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x2c], r9d
add qword [r14 + 0x58], 0x30
mov eax, dword [rbp + 0x30]
cmp eax, esi
jl 0x14002036e
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x140020a46
mov rdx, qword [rbp + 0x128]
lea r10, [rcx*8]
mov r8d, dword [rbp + 0x34]
sub r10, r12
mov r9d, dword [rbp + 0x138]
add r10, r13
movsd xmm0, qword [rdx]
inc r15
mov rax, qword [r14 + 0x50]
lea rdx, [rdx + 8]
movsd qword [rax], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x10], r9d
movsd xmm0, qword [r12]
lea r12, [r12 + 0x10]
mov rax, qword [r14 + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x24], r8d
mov rax, qword [r14 + 0x50]
movsd xmm0, qword [r12 + r10 - 8]
movsd qword [rax + 0x28], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x38], r8d
add qword [r14 + 0x50], 0x3c
cmp r15, rcx
jl 0x140020514
jmp 0x140020a46
movss xmm11, dword [0x14002be04]
subss xmm6, xmm7
mulss xmm6, xmm11
movaps xmm10, xmm6
addss xmm10, xmm7
test al, al
jne 0x140020740
movaps xmm2, xmm10
lea rcx, [rbp + 0x28]
mov rdx, r13
call fcn.14001f408
mov rsi, qword [rbp + 0x128]
lea rcx, [rbp + 0x10]
mov rdx, rsi
mov r8, rax
call fcn.14001f3b0
movaps xmm2, xmm6
lea rcx, [rbp + 0x28]
mov rdx, r13
movsd xmm0, qword [rax]
movsd qword [r12], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f3b0
movaps xmm2, xmm6
lea rcx, [rbp + 0x28]
mov rdx, r13
movsd xmm0, qword [rax]
movsd qword [r12 + 8], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f358
movaps xmm2, xmm10
lea rcx, [rbp + 0x28]
mov rdx, r13
movsd xmm0, qword [rax]
movsd qword [r12 + 0x10], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f358
lea rdi, [r13 - 8]
movaps xmm2, xmm10
lea rdi, [rdi + rbx*8]
lea rsi, [rsi + rbx*8]
mov rdx, rdi
movsd xmm0, qword [rax]
lea rcx, [rbp + 0x28]
movsd qword [r12 + 0x18], xmm0
add rsi, 0xfffffffffffffff8
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f3b0
mov ecx, dword [rbp + 0x130]
movaps xmm2, xmm6
shl ecx, 2
mov rdx, rdi
movsxd rbx, ecx
lea rcx, [rbp + 0x28]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 - 0x20], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f3b0
movaps xmm2, xmm6
lea rcx, [rbp + 0x28]
mov rdx, rdi
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 - 0x18], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f358
movaps xmm2, xmm10
lea rcx, [rbp + 0x28]
mov rdx, rdi
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 - 0x10], xmm0
call fcn.14001f408
mov r8, rax
lea rcx, [rbp + 0x10]
mov rdx, rsi
call fcn.14001f358
mov edi, dword [rbp + 0x130]
mov esi, dword [rbp + 8]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 - 8], xmm0
mov ecx, dword [r14 + 0x48]
mov eax, r15d
mov dword [rbp + 8], ecx
test esi, esi
jle 0x140020970
mov edx, eax
inc eax
cmp eax, edi
mov dword [rbp + 0x30], eax
mov ebx, eax
cmove ebx, r15d
jne 0x140020769
mov eax, dword [r14 + 0x48]
jmp 0x14002076c
lea eax, [rcx + 4]
lea rdx, [rdx*8]
movsxd rdi, ebx
add rdx, r13
mov dword [rbp + 0x1c], eax
lea rcx, [rbp + 0x28]
lea r8, [rdi*8]
add r8, r13
call fcn.14001f3b0
mov rdx, rax
lea rcx, [rbp]
movaps xmm2, xmm11
call fcn.14001f408
movss xmm1, dword [rbp + 4]
movss xmm0, dword [rbp]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
comiss xmm1, dword [0x14002bd94]
jbe 0x1400207dc
movaps xmm0, xmm7
lea rcx, [rbp]
divss xmm0, xmm1
movss xmm1, dword [0x14002bee4]
minss xmm1, xmm0
call fcn.14001f26c
movaps xmm2, xmm10
lea rdx, [rbp]
lea rcx, [rbp + 0x10]
call fcn.14001f408
movaps xmm2, xmm6
lea rdx, [rbp]
lea rcx, [rbp + 0x20]
call fcn.14001f408
mov rax, qword [rbp + 0x128]
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x48]
lea rdi, [rax + rdi*8]
mov rdx, rdi
call fcn.14001f3b0
lea ecx, [rbx*4]
mov rdx, rdi
movsxd rbx, ecx
lea r8, [rbp + 0x20]
lea rcx, [rbp + 0x50]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8], xmm0
call fcn.14001f3b0
lea r8, [rbp + 0x20]
mov rdx, rdi
lea rcx, [rbp + 0x58]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 + 8], xmm0
call fcn.14001f358
lea r8, [rbp + 0x10]
mov rdx, rdi
lea rcx, [rbp + 0x60]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 + 0x10], xmm0
call fcn.14001f358
mov edx, dword [rbp + 0x1c]
mov r8, r15
mov ecx, dword [rbp + 8]
movsd xmm0, qword [rax]
movsd qword [r12 + rbx*8 + 0x18], xmm0
lea r9d, [rdx + 1]
mov rax, qword [r14 + 0x58]
lea ebx, [rcx + 1]
mov r10d, ebx
mov dword [rax], r9d
mov rax, qword [r14 + 0x58]
mov dword [r8 + rax + 4], r10d
inc r10d
add r8, 4
cmp r8, 8
jl 0x140020897
mov rax, qword [r14 + 0x58]
lea r10d, [rcx + 2]
lea r11d, [rdx + 2]
mov r8d, 0x14
mov dword [rax + 0xc], r10d
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x10], r11d
mov rax, qword [r14 + 0x58]
mov dword [r8 + rax], r9d
add r8, 4
cmp r8, 0x1c
jl 0x1400208cb
mov rax, qword [r14 + 0x58]
mov r8d, 0x20
mov dword [rax + 0x1c], ebx
mov rax, qword [r14 + 0x58]
mov dword [r8 + rax], ecx
add r8, 4
cmp r8, 0x28
jl 0x1400208ea
mov rax, qword [r14 + 0x58]
mov r8d, 0x2c
mov dword [rax + 0x28], edx
mov rax, qword [r14 + 0x58]
mov dword [r8 + rax], r9d
inc r9d
add r8, 4
cmp r8, 0x34
jl 0x140020909
mov r8d, 0x34
mov rax, qword [r14 + 0x58]
mov dword [r8 + rax], r10d
inc r10d
add r8, 4
cmp r8, 0x3c
jl 0x140020924
mov rax, qword [r14 + 0x58]
add ecx, 3
mov edi, dword [rbp + 0x130]
mov dword [rbp + 8], edx
mov dword [rax + 0x3c], ecx
lea ecx, [rdx + 3]
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x40], ecx
mov ecx, edx
mov rax, qword [r14 + 0x58]
mov dword [rax + 0x44], r11d
add qword [r14 + 0x58], 0x48
mov eax, dword [rbp + 0x30]
cmp eax, esi
jl 0x140020752
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x140020a46
mov r8d, dword [rbp + 0x34]
lea rax, [rcx*8 + 0x10]
mov r9d, dword [rbp + 0x138]
lea rdx, [rax + r13]
sub r12, rax
sub r12, r13
movsd xmm0, qword [r12 + rdx]
inc r15
mov rax, qword [r14 + 0x50]
movsd qword [rax], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x10], r8d
movsd xmm0, qword [rdx - 8]
mov rax, qword [r14 + 0x50]
movsd qword [rax + 0x14], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x24], r9d
movsd xmm0, qword [rdx]
lea rdx, [rdx + 0x20]
mov rax, qword [r14 + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x38], r9d
mov rax, qword [r14 + 0x50]
movsd xmm0, qword [rdx - 0x18]
movsd qword [rax + 0x3c], xmm0
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x4c], r8d
add qword [r14 + 0x50], 0x50
cmp r15, rcx
jl 0x14002099a
mov eax, dword [rbp + 0x38]
add dword [r14 + 0x48], eax
jmp 0x140020c39
lea edx, [rsi + rsi*2]
mov rcx, r14
add edx, edx
lea r8d, [rsi*4]
call fcn.1400188ec
mov ecx, r15d
test esi, esi
jle 0x140020c39
mulss xmm6, dword [0x14002be04]
mov rsi, rbx
inc ecx
mov r8, rsi
mov eax, ecx
mov dword [rbp + 0x130], ecx
cmp ecx, edi
lea rcx, [rbp]
cmove eax, r15d
cdqe
lea rbx, [rbx + rax*8]
mov rdx, rbx
call fcn.14001f358
movaps xmm1, xmm7
lea rcx, [rbp]
call fcn.14001f02c
movaps xmm1, xmm0
lea rcx, [rbp]
call fcn.14001f26c
mov rax, qword [r14 + 0x50]
mov r8d, r15d
movss xmm2, dword [rbp + 4]
mov rdx, r15
movss xmm3, dword [rbp]
mulss xmm2, xmm6
mulss xmm3, xmm6
movaps xmm0, xmm2
addss xmm0, dword [rsi]
movss dword [rax], xmm0
movaps xmm0, xmm2
movss xmm1, dword [rsi + 4]
mov rax, qword [r14 + 0x50]
subss xmm1, xmm3
movss dword [rax + 4], xmm1
mov rax, qword [r14 + 0x50]
movss dword [rax + 8], xmm8
movss dword [rax + 0xc], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x10], r13d
addss xmm0, dword [rbx]
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x14], xmm0
movss xmm1, dword [rbx + 4]
mov rax, qword [r14 + 0x50]
subss xmm1, xmm3
movss dword [rax + 0x18], xmm1
movaps xmm1, xmm3
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x1c], xmm8
movss dword [rax + 0x20], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x24], r13d
movss xmm0, dword [rbx]
mov rax, qword [r14 + 0x50]
subss xmm0, xmm2
movss dword [rax + 0x28], xmm0
mov rax, qword [r14 + 0x50]
addss xmm1, dword [rbx + 4]
movss dword [rax + 0x2c], xmm1
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x30], xmm8
movss dword [rax + 0x34], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x38], r13d
movss xmm0, dword [rsi]
mov rax, qword [r14 + 0x50]
subss xmm0, xmm2
movss dword [rax + 0x3c], xmm0
mov rax, qword [r14 + 0x50]
addss xmm3, dword [rsi + 4]
movss dword [rax + 0x40], xmm3
mov rax, qword [r14 + 0x50]
movss dword [rax + 0x44], xmm8
movss dword [rax + 0x48], xmm9
mov rax, qword [r14 + 0x50]
mov dword [rax + 0x4c], r13d
mov rcx, qword [r14 + 0x58]
add qword [r14 + 0x50], 0x50
mov eax, dword [r14 + 0x48]
mov dword [rcx], eax
mov ecx, dword [r14 + 0x48]
mov rax, qword [r14 + 0x58]
inc ecx
add ecx, r8d
inc r8d
mov dword [rdx + rax + 4], ecx
add rdx, 4
cmp rdx, 8
jl 0x140020bc5
mov rcx, qword [r14 + 0x58]
mov r8d, r15d
mov eax, dword [r14 + 0x48]
mov edx, 0x10
mov dword [rcx + 0xc], eax
mov ecx, dword [r14 + 0x48]
mov rax, qword [r14 + 0x58]
add ecx, 2
add ecx, r8d
inc r8d
mov dword [rdx + rax], ecx
add rdx, 4
cmp rdx, 0x18
jl 0x140020bf6
add qword [r14 + 0x58], 0x18
add rsi, 8
add dword [r14 + 0x48], 4
mov rbx, qword [rbp + 0x128]
mov ecx, dword [rbp + 0x130]
sub r12, 1
jne 0x140020a7d
movaps xmm6, xmmword [rbp + 0xc0]
movaps xmm7, xmmword [rbp + 0xb0]
movaps xmm8, xmmword [rbp + 0xa0]
movaps xmm9, xmmword [rbp + 0x90]
movaps xmm10, xmmword [rbp + 0x80]
movaps xmm11, xmmword [rbp + 0x70]
lea rsp, [rbp + 0xd8]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret