Function at 0x14006f060
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x60], xmm8
movaps xmmword [rsp + 0x70], xmm9
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x90], xmm11
mov r15, qword [rcx + 0x80]
mov eax, r8d
mov r13d, r8d
mov r14d, r8d
mov r8d, dword [rcx + 8]
sar eax, 1
mov rbx, rcx
movsxd rbp, edx
sar r13d, 2
lea r12d, [rax*4 + 7]
mov dword [rsp + 0x38], eax
and r12d, 0xfffffff8
add r8d, r12d
mov dword [rcx + 8], r8d
test r15, r15
je 0x14006f4c8
movsxd rsi, dword [rcx + 0x90]
mov r9d, dword [rbx + 0x94]
mov rcx, rsi
add rsi, r15
lea edx, [r12 + rcx]
cmp edx, r9d
jg 0x14006f450
movsxd rdi, edx
lea ecx, [r12 + rdx]
mov dword [rbx + 0x90], edx
add rdi, r15
mov qword [rbx + rbp*8 + 0x588], rsi
cmp r9d, ecx
jl 0x14006f5f8
movsxd rax, ecx
mov dword [rbx + 0x90], ecx
add rax, r15
mov qword [rsp + 0x30], rax
lea eax, [r13*4 + 7]
mov qword [rbx + rbp*8 + 0x598], rdi
and eax, 0xfffffff8
lea edx, [rax + r12]
add eax, ecx
add edx, r8d
mov dword [rsp + 0x3c], edx
mov dword [rbx + 8], edx
cmp eax, r9d
jg 0x14006f470
mov dword [rbx + 0x90], eax
test rsi, rsi
mov rcx, qword [rsp + 0x30]
sete dl
test rdi, rdi
sete al
mov qword [rbx + rbp*8 + 0x5a8], rcx
or dl, al
jne 0x14006f47c
test rcx, rcx
je 0x14006f47c
test r13d, r13d
jle 0x14006f26b
movsxd r13, r13d
pxor xmm11, xmm11
movsd xmm7, qword [0x1400b0070]
movsd xmm8, qword [0x1400b0078]
cvtsi2sd xmm11, r14d
lea rax, [r13 + r13]
movss xmm10, dword [0x1400b0080]
xor r13d, r13d
movss xmm9, dword [0x1400b0060]
mov qword [rsp + 0x28], rax
lea edx, [r13 + r13]
pxor xmm6, xmm6
cvtsi2sd xmm6, edx
mulsd xmm6, xmm7
divsd xmm6, xmm11
movapd xmm0, xmm6
call fcn.14009cdb0
cvtsd2ss xmm0, xmm0
movss dword [rsi + r13*4], xmm0
movapd xmm0, xmm6
pxor xmm6, xmm6
call fcn.14009dbe0
lea edx, [r13 + 1]
cvtsi2sd xmm6, edx
cvtsd2ss xmm0, xmm0
xorps xmm0, xmm9
movss dword [rsi + r13*4 + 4], xmm0
mulsd xmm6, xmm7
divsd xmm6, xmm11
mulsd xmm6, xmm8
movapd xmm0, xmm6
call fcn.14009cdb0
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm10
movss dword [rdi + r13*4], xmm0
movapd xmm0, xmm6
call fcn.14009dbe0
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm10
movss dword [rdi + r13*4 + 4], xmm0
add r13, 2
cmp qword [rsp + 0x28], r13
jne 0x14006f1d0
mov eax, r14d
sar eax, 3
mov dword [rsp + 0x28], eax
test eax, eax
jle 0x14006f2f7
pxor xmm8, xmm8
mov eax, dword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov r13d, 2
cvtsi2sd xmm8, r14d
movsd xmm7, qword [0x1400b0070]
movss xmm9, dword [0x1400b0060]
lea edi, [rax*4 + 2]
nop word [rax + rax]
pxor xmm6, xmm6
add rsi, 8
cvtsi2sd xmm6, r13d
add r13d, 4
mulsd xmm6, xmm7
divsd xmm6, xmm8
movapd xmm0, xmm6
call fcn.14009cdb0
cvtsd2ss xmm0, xmm0
movss dword [rsi - 8], xmm0
movapd xmm0, xmm6
call fcn.14009dbe0
cvtsd2ss xmm0, xmm0
xorps xmm0, xmm9
movss dword [rsi - 4], xmm0
cmp edi, r13d
jne 0x14006f2b0
mov r13d, dword [rsp + 0x3c]
add r13d, r12d
mov dword [rbx + 8], r13d
test r15, r15
je 0x14006f550
movsxd rdi, dword [rbx + 0x90]
add r12d, edi
cmp r12d, dword [rbx + 0x94]
jg 0x14006f5d0
mov ecx, dword [rsp + 0x38]
add rdi, r15
mov dword [rbx + 0x90], r12d
mov qword [rbx + rbp*8 + 0x5b8], rdi
test ecx, ecx
jle 0x14006f5e1
mov eax, dword [rsp + 0x38]
pxor xmm9, xmm9
xor esi, esi
movsd xmm7, qword [0x1400b0070]
movsd xmm8, qword [0x1400b0078]
movsd xmm6, qword [0x1400b0088]
cvtsi2sd xmm9, eax
lea r12d, [rax - 1]
nop
pxor xmm0, xmm0
cvtsi2sd xmm0, esi
addsd xmm0, xmm8
divsd xmm0, xmm9
mulsd xmm0, xmm8
mulsd xmm0, xmm7
call fcn.14009dbe0
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, xmm6
call fcn.14009dbe0
mov rdx, rsi
cvtsd2ss xmm0, xmm0
movss dword [rdi + rsi*4], xmm0
add rsi, 1
cmp r12, rdx
jne 0x14006f370
mov eax, dword [rsp + 0x28]
lea eax, [rax + rax + 7]
and eax, 0xfffffff8
lea esi, [rax + r13]
mov dword [rbx + 8], esi
test r15, r15
je 0x14006f590
movsxd rdx, dword [rbx + 0x90]
add eax, edx
cmp eax, dword [rbx + 0x94]
jg 0x14006f5b8
add r15, rdx
mov dword [rbx + 0x90], eax
mov qword [rbx + rbp*8 + 0x5c8], r15
mov ecx, r14d
call fcn.14006d9b0
mov edx, dword [rsp + 0x28]
sub eax, 1
test edx, edx
jle 0x14006f449
mov r9d, 0x23
xor r8d, r8d
sub r9d, eax
mov eax, dword [rsp + 0x28]
lea r10d, [rax - 1]
nop word [rax + rax]
mov ecx, r8d
call fcn.14006c500
mov ecx, r9d
shr eax, cl
shl eax, 2
mov word [r15 + r8*2], ax
mov rax, r8
add r8, 1
cmp rax, r10
jne 0x14006f428
mov eax, 1
jmp 0x14006f488
mov qword [rsp + 0x30], rsi
xor edi, edi
xor esi, esi
mov qword [rbx + rbp*8 + 0x588], 0
jmp 0x14006f12e
mov qword [rbx + rbp*8 + 0x5a8], 0
mov dword [rbx + 0x9c], 3
xor eax, eax
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm11, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r12d, r12d
je 0x14006f538
movsxd rdi, r12d
mov dword [rsp + 0x28], r8d
mov rcx, rdi
call sub.msvcrt.dll_malloc
mov rcx, rdi
mov qword [rbx + rbp*8 + 0x588], rax
mov rsi, rax
call sub.msvcrt.dll_malloc
mov r8d, dword [rsp + 0x28]
mov rdi, rax
lea ecx, [r13*4 + 7]
mov qword [rbx + rbp*8 + 0x598], rdi
and ecx, 0xfffffff8
lea eax, [rcx + r12]
add eax, r8d
mov dword [rsp + 0x3c], eax
mov dword [rbx + 8], eax
test ecx, ecx
je 0x14006f470
movsxd rcx, ecx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x30], rax
jmp 0x14006f160
mov qword [rcx + rbp*8 + 0x588], 0
xor esi, esi
xor edi, edi
jmp 0x14006f4f8
test r12d, r12d
je 0x14006f5d0
movsxd rcx, r12d
call sub.msvcrt.dll_malloc
mov qword [rbx + rbp*8 + 0x5b8], rax
mov rdi, rax
test rax, rax
je 0x14006f47c
mov eax, dword [rsp + 0x38]
test eax, eax
jg 0x14006f341
mov eax, dword [rsp + 0x28]
lea eax, [rax + rax + 7]
and eax, 0xfffffff8
lea esi, [rax + r13]
mov dword [rbx + 8], esi
nop
test eax, eax
je 0x14006f5b8
movsxd rcx, eax
call sub.msvcrt.dll_malloc
mov qword [rbx + rbp*8 + 0x5c8], rax
mov r15, rax
test rax, rax
jne 0x14006f3fb
jmp 0x14006f47c
mov qword [rbx + rbp*8 + 0x5c8], 0
jmp 0x14006f47c
mov qword [rbx + rbp*8 + 0x5b8], 0
jmp 0x14006f47c
mov eax, dword [rsp + 0x28]
lea eax, [rax + rax + 7]
and eax, 0xfffffff8
lea esi, [rax + r13]
mov dword [rbx + 8], esi
jmp 0x14006f3d5
mov qword [rsp + 0x30], rdi
mov ecx, edx
xor edi, edi
jmp 0x14006f12e