Function at 0x44c9e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x298
movups xmmword [rsp + 0x260], xmm6
movups xmmword [rsp + 0x270], xmm7
movups xmmword [rsp + 0x280], xmm8
mov rax, qword [0x00499e30]
lea r15, [0x00489f20]
mov eax, dword [rax]
mov rbx, rcx
test eax, eax
jne 0x44cd5d
movsx r14, byte [rbx + 0x1c]
mov r12, qword [rbx]
test r14, r14
jle 0x44cabe
lea rcx, [rbx + 0x28]
xor edx, edx
lea r10, [rsp + 0xe0]
lea r9, [rsp + 0x1e0]
lea r8, [rsp + 0x160]
jmp 0x44ca6d
add rdx, 1
add rcx, 0x18
cmp r14, rdx
je 0x44cabe
mov rax, qword [rcx]
mov qword [r10 + rdx*8], 0
mov qword [r9 + rdx*8], rax
mov rax, qword [rcx + 0x10]
add rax, 1
sub rax, qword [rcx + 8]
mov qword [r8 + rdx*8], rax
test rax, rax
jg 0x44ca60
movups xmm6, xmmword [rsp + 0x260]
movups xmm7, xmmword [rsp + 0x270]
movups xmm8, xmmword [rsp + 0x280]
add rsp, 0x298
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r15], 0
mov rbx, qword [rsp + 0x1e0]
je 0x44cd6a
test r12, r12
je 0x44ca91
movsxd rax, dword [r15 + 4]
mov rdi, qword [rsp + 0x160]
mov rsi, rbx
lea rbp, [rsp + 0xb0]
shl rsi, 4
mov r9, qword [rsp + 0xe0]
movdqu xmm8, xmmword [0x00492430]
mov dword [rsp + 0x2c], eax
mov r13, qword [r15 + rax*8 + 8]
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xc0]
movdqu xmm7, xmmword [0x00492440]
imul rbx, rdi
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x40], rsi
lea rsi, [rsp + 0x90]
mov qword [rsp + 0x48], rdi
lea rdi, [rsp + 0xa0]
mov qword [rsp + 0x68], rbx
lea rbx, [rsp + 0x80]
nop dword [rax]
mov r8d, dword [rsp + 0x2c]
mov qword [rsp + 0x38], r9
add r8d, 1
mov eax, r8d
lea edx, [r8 + 1]
and eax, 0xf
lea r10, [r15 + rax*8]
mov rax, qword [r10 + 8]
mov rcx, rax
shl rcx, 0x1f
xor rcx, rax
mov rax, r13
shr rax, 0x1e
xor rax, r13
xor rax, rcx
shr rcx, 0xb
xor rax, rcx
mov ecx, edx
and edx, 0xf
and ecx, 0xf
mov qword [r10 + 8], rax
mov dword [rsp + 0x2c], ecx
lea rcx, [r15 + rdx*8]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x30], rax
mov r13, rdx
shl r13, 0x1f
xor rdx, r13
mov r13, rdx
xor rdx, rax
shr r13, 0xb
xor r13, rdx
mov rdx, rax
shr rdx, 0x1e
xor r13, rdx
movabs rdx, 0x106689d45497fdb5
imul rdx, r13
mov qword [rcx + 8], r13
mov rcx, qword [rsp + 0x58]
and rdx, 0xffffffffffff8000
call sym.__floatunditf
mov rcx, qword [rsp + 0x50]
mov r8, rdi
mov rdx, rbp
movdqu xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0xa0], xmm8
movups xmmword [rsp + 0xb0], xmm0
call sym.__multf3
mov rax, qword [rsp + 0x30]
mov rcx, rbp
movabs rdx, 0x106689d45497fdb5
movdqu xmm6, xmmword [rsp + 0xc0]
imul rdx, rax
call sym.__floatunditf
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
movdqu xmm1, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x80], xmm7
movups xmmword [rsp + 0x90], xmm1
call sym.__multf3
mov r8, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, rsi
movdqu xmm2, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x80], xmm6
movups xmmword [rsp + 0x70], xmm2
call sym.__addtf3
mov r9, qword [rsp + 0x38]
movdqu xmm3, xmmword [rsp + 0x90]
add r9, 1
movups xmmword [r12], xmm3
add r12, qword [rsp + 0x40]
cmp r9, qword [rsp + 0x48]
jne 0x44cb68
cmp r14, 1
je 0x44cd50
mov qword [rsp + 0x30], rbx
mov r8, qword [rsp + 0x68]
lea rcx, [rsp + 0xe8]
mov edx, 1
lea r11, [rsp + 0x1e0]
lea r10, [rsp + 0x160]
jmp 0x44cd1b
imul r9, rax
add rdx, 1
mov qword [rcx], 0
add rcx, 8
mov r8, r9
cmp r14, rdx
je 0x44cd50
mov r9, qword [r11 + rdx*8]
mov rax, qword [rcx]
mov rbx, r9
add rax, 1
sub rbx, r8
mov qword [rcx], rax
mov r8, rbx
shl r8, 4
add r12, r8
cmp rax, qword [r10 + rdx*8]
je 0x44cd00
mov rbx, qword [rsp + 0x30]
xor r9d, r9d
jmp 0x44cb68
mov eax, dword [rsp + 0x2c]
mov dword [r15 + 4], eax
jmp 0x44ca91
call fcn.0046aef0
mov r15, rax
jmp 0x44ca27
xor edx, edx
mov rcx, r15
call fcn.0046b1d0
jmp 0x44cad0