Function at 0x1401dddf0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
movups xmm0, xmmword [rcx + 0x68]
mov rdi, rcx
mov qword [rsp + 0xc8], rbx
movups xmmword [rcx + 0x58], xmm0
mov ecx, dword [rcx + 0x60]
mov r8d, ecx
mov r9d, dword [rdi + 0x64]
mov edx, r9d
mov eax, dword [rdi + 0x58]
sub r8d, eax
mov r10d, dword [rdi + 0x5c]
sub edx, r10d
test byte [rdi], 0x10
je 0x1401dde66
cmp r8d, 7
jle 0x1401dde66
cmp edx, 7
jle 0x1401dde66
add eax, 3
mov dword [rdi + 0x58], eax
lea eax, [rcx - 3]
mov dword [rdi + 0x60], eax
mov ecx, 0xfffffffa
lea eax, [r10 + 3]
mov dword [rdi + 0x5c], eax
lea eax, [r9 - 3]
mov dword [rdi + 0x64], eax
or dword [rdi + 4], 0x10
jmp 0x1401dde89
add eax, 2
mov dword [rdi + 0x58], eax
lea eax, [rcx - 2]
mov dword [rdi + 0x60], eax
mov ecx, 0xfffffffc
lea eax, [r10 + 2]
mov dword [rdi + 0x5c], eax
lea eax, [r9 - 2]
mov dword [rdi + 0x64], eax
and dword [rdi + 4], 0xffffffef
cmp qword [rdi + 0x3c0], 0
lea r10d, [rdx + rcx]
mov eax, dword [rdi + 4]
mov r9d, ecx
lea r9d, [r8 + rcx]
je 0x1401ddea8
bts eax, 0xd
mov dword [rdi + 4], eax
movaps xmmword [rsp + 0x80], xmm6
test al, 0x20
jne 0x1401ddfe0
mov eax, 0x66666667
imul r9d
mov ecx, edx
sar ecx, 2
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, 0x66666667
imul r10d
mov dword [rdi + 0x150], ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rdi + 0x154], edx
mov eax, edx
cmp ecx, edx
jle 0x1401ddef8
mov dword [rdi + 0x150], edx
jmp 0x1401ddf00
mov dword [rdi + 0x154], ecx
mov eax, ecx
mov ecx, dword [rdi + 0x154]
mov edx, 8
cmp eax, edx
cmovl eax, edx
cmp ecx, edx
mov dword [rdi + 0x168], eax
mov eax, r9d
cmovl ecx, edx
cdq
mov dword [rdi + 0x16c], ecx
and edx, 7
lea r8d, [rdx + rax]
mov eax, r10d
cdq
sar r8d, 3
and edx, 7
add eax, edx
sar eax, 3
cmp r8d, eax
mov edx, eax
cmovle edx, r8d
cmovg r8d, eax
mov dword [rdi + 0x220], r8d
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movd xmm6, edx
addsd xmm0, xmm0
cvtdq2ps xmm6, xmm6
cvttsd2si ecx, xmm0
movss xmm0, dword [0x1404539e0]
mov dword [rdi + 0x21c], ecx
mov rax, qword [rdi + 0x21c]
mov qword [rdi + 0x29c], rax
mov dword [rdi + 0x25c], edx
mov dword [rdi + 0x260], ecx
mov rax, qword [rdi + 0x25c]
mov qword [rdi + 0x2dc], rax
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
cvtps2pd xmm1, xmm6
mulsd xmm1, qword [0x1404538c0]
cvttsd2si eax, xmm1
mov dword [rbp - 0x11], eax
mov dword [rbp - 0xd], eax
mov rax, qword [rbp - 0x11]
mov qword [rdi + 0x1fc], rax
mov qword [rdi + 0x23c], rax
mov qword [rdi + 0x27c], rax
mov qword [rdi + 0x2bc], rax
jmp 0x1401de063
mov eax, dword [rdi + 0x150]
lea r8, [rbp - 0x19]
mov edx, 8
cmp eax, edx
cmovl eax, edx
mov dword [rdi + 0x168], eax
mov eax, dword [rdi + 0x154]
cmp eax, edx
cmovl eax, edx
lea rdx, [rbp - 0x11]
mov dword [rdi + 0x16c], eax
mov rcx, qword [rdi + 0x120]
call fcn.1401e0d60
mov eax, dword [rbp - 0x11]
mov dword [rbp - 0x11], eax
mov eax, dword [rbp - 0x19]
mov dword [rbp - 0xd], eax
mov rax, qword [rbp - 0x11]
mov qword [rdi + 0x1fc], rax
mov qword [rdi + 0x21c], rax
mov qword [rdi + 0x23c], rax
mov qword [rdi + 0x25c], rax
mov qword [rdi + 0x27c], rax
mov qword [rdi + 0x29c], rax
mov qword [rdi + 0x2bc], rax
mov qword [rdi + 0x2dc], rax
movups xmm0, xmmword [rdi + 0x58]
lea rax, [rbp - 0x19]
xor esi, esi
mov qword [rsp + 0x30], rax
mov ebx, 2
lea rax, [rbp - 0x11]
mov r9d, ebx
mov qword [rsp + 0x28], rax
xor r8d, r8d
lea edx, [rsi + 1]
mov dword [rsp + 0x20], esi
mov rcx, rdi
movups xmmword [rdi + 0xc0], xmm0
movups xmmword [rdi + 0xe0], xmm0
call fcn.1401ddc60
mov eax, dword [rbp - 0x19]
lea r9d, [rsi + 4]
cdq
mov r8d, ebx
sub eax, edx
mov rcx, rdi
sar eax, 1
lea edx, [rsi + 3]
add dword [rdi + 0xe4], eax
mov eax, dword [rbp - 0x11]
add dword [rdi + 0xc4], eax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
call fcn.1401ddc60
mov eax, dword [rbp - 0x19]
lea edx, [rsi + 5]
sub dword [rdi + 0xe8], eax
lea r9d, [rsi + 6]
mov eax, dword [rbp - 0x11]
lea r8d, [rsi + 4]
sub dword [rdi + 0xc8], eax
mov rcx, rdi
lea rax, [rbp - 0x19]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
call fcn.1401ddc60
mov eax, dword [rbp - 0x19]
lea r9d, [rsi + 6]
sub dword [rdi + 0xec], eax
lea edx, [rsi + 7]
mov eax, dword [rbp - 0x11]
xor r8d, r8d
sub dword [rdi + 0xcc], eax
mov rcx, rdi
lea rax, [rbp - 0x19]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
call fcn.1401ddc60
mov eax, dword [rbp - 0x11]
add dword [rdi + 0xc0], eax
movups xmm0, xmmword [rdi + 0xc0]
mov r10d, dword [rbp - 0x19]
add dword [rdi + 0xe0], r10d
movups xmmword [rdi + 0xd0], xmm0
mov eax, dword [rdi + 0x154]
cdq
sub eax, edx
sar eax, 1
neg eax
mov ecx, eax
mov eax, dword [rdi + 0x150]
sub dword [rdi + 0xd4], ecx
cdq
sub eax, edx
sar eax, 1
neg eax
sub dword [rdi + 0xd0], eax
add dword [rdi + 0xd8], eax
add dword [rdi + 0xdc], ecx
mov eax, dword [rdi + 0xe0]
add eax, dword [rdi + 0xc0]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0xf0], eax
mov eax, dword [rdi + 0xe8]
add eax, dword [rdi + 0xc8]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0xf8], eax
mov eax, dword [rdi + 0xe4]
add eax, dword [rdi + 0xc4]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0xf4], eax
mov eax, dword [rdi + 0xec]
add eax, dword [rdi + 0xcc]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0xfc], eax
mov eax, dword [rdi + 0xe0]
add eax, dword [rdi + 0x58]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x100], eax
mov eax, dword [rdi + 0xe8]
add eax, dword [rdi + 0x60]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x108], eax
mov eax, dword [rdi + 0x5c]
add eax, dword [rdi + 0xe4]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x104], eax
mov eax, dword [rdi + 0xec]
add eax, dword [rdi + 0x64]
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x10c], eax
test byte [rdi], 0x80
mov r9d, dword [rdi + 0x58]
mov r8d, dword [rdi + 0x5c]
je 0x1401de54e
mov eax, dword [rdi + 0x60]
lea rsi, [rdi + 0x220]
mov qword [rsp + 0xd0], r12
sub eax, r9d
mov qword [rsp + 0xd8], r13
cdq
mov qword [rsp + 0x98], r14
sub eax, edx
mov qword [rsp + 0x90], r15
lea r14, str.fs_8R
movaps xmmword [rsp + 0x70], xmm7
lea r15, [rdi + 0x328]
sar eax, 1
mov edi, ebx
movaps xmmword [rsp + 0x60], xmm8
movsd xmm8, qword [0x140452130]
movaps xmmword [rsp + 0x50], xmm9
movsd xmm9, qword [0x140453a10]
lea r13d, [r8 + rax]
movd xmm7, eax
lea r12d, [r9 + rax]
cvtdq2pd xmm7, xmm7
divsd xmm8, xmm7
nop dword [rax]
movsd xmm6, qword [r14 - 0x10]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mov eax, dword [rsi - 0x24]
mulsd xmm0, xmm7
cdq
sub eax, edx
sar eax, 1
cvttsd2si ebx, xmm0
movaps xmm0, xmm6
sub ebx, eax
add ebx, r12d
mov dword [rsi - 0x1c], ebx
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov eax, dword [rsi - 0x20]
cdq
mulsd xmm0, xmm7
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
sub ecx, eax
lea edx, [rcx + r13]
mov dword [rsi - 0x18], edx
mov ecx, dword [rsi - 0x24]
add ecx, ebx
mov dword [rsi - 0x14], ecx
mov ecx, dword [rsi - 0x20]
add ecx, edx
mov dword [rsi - 0x10], ecx
movsd xmm0, qword [r14 - 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movsd qword [r15 - 0x28], xmm0
movsd xmm0, qword [r14 - 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmm9
movsd qword [r15 - 0x18], xmm8
movsd qword [r15 - 0x20], xmm0
movsd xmm6, qword [r14 - 8]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mov eax, dword [rsi - 4]
mulsd xmm0, xmm7
cdq
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
movaps xmm0, xmm6
sub ecx, eax
add ecx, r12d
mov dword [rsi + 4], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov eax, dword [rsi]
cdq
mulsd xmm0, xmm7
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
sub ecx, eax
add ecx, r13d
mov dword [rsi + 8], ecx
mov eax, dword [rsi - 4]
add eax, dword [rsi + 4]
mov dword [rsi + 0xc], eax
mov eax, dword [rsi]
add eax, dword [rsi + 8]
mov dword [rsi + 0x10], eax
movsd xmm0, qword [r14 - 8]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movsd qword [r15 - 0x10], xmm0
movsd xmm0, qword [r14 - 8]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmm9
movsd qword [r15 - 8], xmm0
movsd qword [r15], xmm8
movsd xmm6, qword [r14]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mov eax, dword [rsi + 0x1c]
mulsd xmm0, xmm7
cdq
cvttsd2si ecx, xmm0
sub eax, edx
movaps xmm0, xmm6
sar eax, 1
sub ecx, eax
add ecx, r12d
mov dword [rsi + 0x24], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov eax, dword [rsi + 0x20]
cdq
mulsd xmm0, xmm7
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
sub ecx, eax
add ecx, r13d
mov dword [rsi + 0x28], ecx
mov eax, dword [rsi + 0x1c]
add eax, dword [rsi + 0x24]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsi + 0x20]
add eax, dword [rsi + 0x28]
mov dword [rsi + 0x30], eax
movsd xmm0, qword [r14]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movsd qword [r15 + 8], xmm0
movsd xmm0, qword [r14]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm0, xmm9
movsd qword [r15 + 0x10], xmm0
movsd qword [r15 + 0x18], xmm8
movsd xmm6, qword [r14 + 8]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mov eax, dword [rsi + 0x3c]
mulsd xmm0, xmm7
cdq
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
movaps xmm0, xmm6
sub ecx, eax
add ecx, r12d
mov dword [rsi + 0x44], ecx
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov eax, dword [rsi + 0x40]
cdq
mulsd xmm0, xmm7
sub eax, edx
sar eax, 1
cvttsd2si ecx, xmm0
sub ecx, eax
add ecx, r13d
mov dword [rsi + 0x48], ecx
mov eax, dword [rsi + 0x44]
add eax, dword [rsi + 0x3c]
mov dword [rsi + 0x4c], eax
mov eax, dword [rsi + 0x40]
add eax, dword [rsi + 0x48]
mov dword [rsi + 0x50], eax
movsd xmm0, qword [r14 + 8]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movsd qword [r15 + 0x20], xmm0
movsd xmm0, qword [r14 + 8]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
lea r15, [r15 + 0x60]
xorps xmm0, xmm9
movsd qword [r15 - 0x38], xmm0
lea rsi, [rsi + 0x80]
movsd qword [r15 - 0x30], xmm8
lea r14, [r14 + 0x20]
sub rdi, 1
jne 0x1401de2f0
mov rdi, qword [rbp + 0x67]
xor esi, esi
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
mov r15, qword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xd0]
jmp 0x1401de86b
mov eax, dword [rdi + 0xc4]
add eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0xc0]
add eax, r9d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x1fc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x204], ecx
mov eax, dword [rdi + 0x200]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x208], r8d
add ecx, dword [rdi + 0x1fc]
mov dword [rdi + 0x20c], ecx
mov ecx, dword [rdi + 0x200]
add ecx, r8d
mov dword [rdi + 0x210], ecx
mov eax, dword [rdi + 0x5c]
add eax, dword [rdi + 0xc4]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0xc8]
add eax, dword [rdi + 0x60]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x23c]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x244], ecx
mov eax, dword [rdi + 0x240]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x248], r8d
add ecx, dword [rdi + 0x23c]
mov dword [rdi + 0x24c], ecx
mov ecx, dword [rdi + 0x240]
add ecx, r8d
mov dword [rdi + 0x250], ecx
mov eax, dword [rdi + 0xcc]
add eax, dword [rdi + 0x64]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0xc8]
add eax, dword [rdi + 0x60]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x27c]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x284], ecx
mov eax, dword [rdi + 0x280]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x288], r8d
add ecx, dword [rdi + 0x27c]
mov dword [rdi + 0x28c], ecx
mov ecx, dword [rdi + 0x280]
add ecx, r8d
mov dword [rdi + 0x290], ecx
mov eax, dword [rdi + 0xcc]
add eax, dword [rdi + 0x64]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0xc0]
add eax, dword [rdi + 0x58]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x2bc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x2c4], ecx
mov eax, dword [rdi + 0x2c0]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov eax, r10d
mov dword [rdi + 0x2c8], r8d
add ecx, dword [rdi + 0x2bc]
mov dword [rdi + 0x2cc], ecx
mov edx, dword [rdi + 0x2c0]
add edx, r8d
mov dword [rdi + 0x2d0], edx
cdq
mov r9d, dword [rdi]
and edx, 3
add eax, edx
and r9d, 1
sar eax, 2
add r9, 0xf
add r9, r9
mov r8d, dword [rdi + r9*8 + 4]
sub r8d, eax
mov eax, dword [rdi + 0xd8]
add eax, dword [rdi + 0xd0]
sub r8d, ebx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x21c]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x224], ecx
mov eax, dword [rdi + 0x220]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x228], r8d
add ecx, dword [rdi + 0x21c]
mov dword [rdi + 0x22c], ecx
mov ecx, dword [rdi + 0x220]
add ecx, r8d
mov dword [rdi + 0x230], ecx
mov eax, dword [rdi + 0xd8]
add eax, dword [rdi + 0xd0]
mov r8d, dword [rdi + r9*8 + 0xc]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [rdi + 0x29c]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x2a4], ecx
mov eax, dword [rdi + 0x2a0]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x2a8], r8d
add ecx, dword [rdi + 0x29c]
mov dword [rdi + 0x2ac], ecx
mov ecx, dword [rdi + 0x2a0]
add ecx, r8d
mov dword [rdi + 0x2b0], ecx
mov eax, dword [rdi + 0xdc]
add eax, dword [rdi + 0xd4]
mov ecx, dword [rdi + r9*8]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0x2dc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x2e4], ecx
mov eax, dword [rdi + 0x2e0]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x2e8], r8d
add ecx, dword [rdi + 0x2dc]
mov dword [rdi + 0x2ec], ecx
mov ecx, dword [rdi + 0x2e0]
add ecx, r8d
mov dword [rdi + 0x2f0], ecx
mov eax, dword [rdi + 0xdc]
add eax, dword [rdi + 0xd4]
mov ecx, dword [rdi + r9*8 + 8]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [rdi + 0x25c]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [rdi + 0x264], ecx
mov eax, dword [rdi + 0x260]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov dword [rdi + 0x268], r8d
add ecx, dword [rdi + 0x25c]
mov dword [rdi + 0x26c], ecx
mov ecx, dword [rdi + 0x260]
add ecx, r8d
mov dword [rdi + 0x270], ecx
mov eax, dword [rdi + 0xd8]
sub eax, dword [rdi + 0xd0]
add dword [rdi + 0xf4], 0xfffffffe
movsd xmm1, qword [0x1404539f8]
movaps xmm6, xmmword [rsp + 0x80]
mov rbx, qword [rsp + 0xc8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm1
jb 0x1401de8c3
mov eax, dword [rdi + 0xdc]
sub eax, dword [rdi + 0xd4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm1
jb 0x1401de8c3
mov esi, 0x100
and dword [rdi + 4], 0xfffffeff
mov rcx, rdi
or dword [rdi + 4], esi
call fcn.1401db380
xor edx, edx
mov rcx, rdi
lea r8d, [rdx - 1]
add rsp, 0xa0
pop rdi
pop rsi
pop rbp
jmp fcn.1401dbfe0