Function at 0x55e260
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
movaps xmmword [rsp + 0x30], xmm6
pxor xmm1, xmm1
pxor xmm0, xmm0
movsd xmm2, qword [0x006f9910]
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
mov r12, qword [rsp + 0xc8]
cvtsi2sd xmm1, ecx
mov eax, ecx
cvtsi2sd xmm0, edx
mov edi, ecx
imul eax, edx
mov ebx, edx
mov r15, r8
mov r13, r9
mulsd xmm1, xmm2
mulsd xmm0, xmm2
test eax, eax
cvttsd2si ecx, xmm1
cvttsd2si edx, xmm0
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x28], edx
jle 0x55e383
sub eax, 1
xor ebp, ebp
movss xmm6, dword [0x006f9900]
lea r8, [rax*8 + 8]
test al, 1
mov qword [rsp + 0x20], r8
je 0x55e611
mov dword [rsp + 0x98], ebx
mov rbx, r14
mov r14, r13
mov r13, r12
movss xmm3, dword [r15 + rbp + 4]
movss xmm2, dword [r15 + rbp]
movss xmm0, dword [r14 + rbp]
movss xmm1, dword [r14 + rbp + 4]
xorps xmm1, xmm6
call fcn.005ab968
mov r9d, eax
shr rax, 0x20
mov dword [rbx + rbp], r9d
mov dword [rbx + rbp + 4], eax
movss xmm1, dword [r14 + rbp + 0xc]
movss xmm3, dword [r15 + rbp + 0xc]
movss xmm2, dword [r15 + rbp + 8]
xorps xmm1, xmm6
movss xmm0, dword [r14 + rbp + 8]
call fcn.005ab968
mov r10d, eax
shr rax, 0x20
mov dword [rbx + rbp + 8], r10d
mov dword [rbx + rbp + 0xc], eax
add rbp, 0x10
cmp qword [rsp + 0x20], rbp
jne 0x55e306
mov r14, rbx
mov ebx, dword [rsp + 0x98]
mov r12, r13
mov rcx, qword [rsp + 0xc0]
mov r8, rsi
mov rdx, r14
call fcn.005aa0a0
test edi, edi
jle 0x55e5fb
mov r15d, dword [rsp + 0x28]
lea r11d, [rdi - 1]
xor r13d, r13d
movsxd rbp, edi
add r11, 1
mov qword [rsp + 0x20], r11
lea r14d, [r15 + rbx]
nop word [rax + rax]
test ebx, ebx
jle 0x55e5ec
mov eax, dword [rsp + 0x2c]
mov r10, qword [r12]
mov r8, qword [r12 + 8]
add eax, r13d
cdq
idiv edi
mov eax, dword [rsp + 0x28]
sub r8, r10
sar r8, 2
mov r11d, edx
cdq
idiv ebx
imul edx, edi
add edx, r11d
cmp r8, r13
movsxd rdx, edx
movss xmm6, dword [rsi + rdx*8]
jbe 0x55e652
mov ecx, dword [rsp + 0x28]
mov r15d, r14d
mov r9, r13
lea ecx, [rcx + 1]
sub r15d, ecx
and r15d, 3
je 0x55e5c8
cmp r8, rdx
movss dword [r10 + r13*4], xmm6
movss xmm1, dword [rsi + r13*8]
jbe 0x55e664
movss dword [r10 + rdx*4], xmm1
lea r9, [r13 + rbp]
mov eax, ecx
mov ecx, dword [rsp + 0x28]
cdq
idiv ebx
lea ecx, [rcx + 2]
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm6, dword [rsi + rdx*8]
jbe 0x55e655
cmp r15d, 1
je 0x55e5c8
cmp r15d, 2
je 0x55e4b3
cmp r8, rdx
movss dword [r10 + r9*4], xmm6
movss xmm2, dword [rsi + r9*8]
jbe 0x55e664
mov eax, ecx
movss dword [r10 + rdx*4], xmm2
mov r15d, dword [rsp + 0x28]
add r9, rbp
cdq
idiv ebx
lea ecx, [r15 + 3]
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm6, dword [rsi + rdx*8]
jbe 0x55e655
cmp r8, rdx
movss dword [r10 + r9*4], xmm6
movss xmm0, dword [rsi + r9*8]
jbe 0x55e664
mov eax, ecx
movss dword [r10 + rdx*4], xmm0
add r9, rbp
add ecx, 1
cdq
idiv ebx
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm6, dword [rsi + rdx*8]
ja 0x55e5c8
jmp 0x55e655
mov eax, ecx
add r9, rbp
cdq
idiv ebx
lea eax, [rcx + 1]
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm3, dword [rsi + rdx*8]
jbe 0x55e655
cmp r8, rdx
movss dword [r10 + r9*4], xmm3
movss xmm4, dword [rsi + r9*8]
jbe 0x55e664
movss dword [r10 + rdx*4], xmm4
cdq
add r9, rbp
idiv ebx
lea eax, [rcx + 2]
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm5, dword [rsi + rdx*8]
jbe 0x55e655
cmp r8, rdx
movss dword [r10 + r9*4], xmm5
movss xmm1, dword [rsi + r9*8]
jbe 0x55e664
movss dword [r10 + rdx*4], xmm1
cdq
add r9, rbp
idiv ebx
lea eax, [rcx + 3]
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm2, dword [rsi + rdx*8]
jbe 0x55e655
cmp r8, rdx
movss dword [r10 + r9*4], xmm2
movss xmm0, dword [rsi + r9*8]
jbe 0x55e664
movss dword [r10 + rdx*4], xmm0
cdq
add r9, rbp
add ecx, 4
idiv ebx
imul edx, edi
add edx, r11d
cmp r8, r9
movsxd rdx, edx
movss xmm6, dword [rsi + rdx*8]
jbe 0x55e655
cmp r8, rdx
movss dword [r10 + r9*4], xmm6
movss xmm6, dword [rsi + r9*8]
jbe 0x55e664
cmp r14d, ecx
movss dword [r10 + rdx*4], xmm6
jne 0x55e4f5
add r13, 1
cmp qword [rsp + 0x20], r13
jne 0x55e3c0
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movss xmm1, dword [r9 + 4]
movss xmm3, dword [r15 + 4]
movss xmm2, dword [r15]
xorps xmm1, xmm6
movss xmm0, dword [r9]
call fcn.005ab968
mov ebp, eax
shr rax, 0x20
cmp qword [rsp + 0x20], 8
mov dword [r14], ebp
mov ebp, 8
mov dword [r14 + 4], eax
jne 0x55e2f6
jmp 0x55e383
mov r9, r13
lea rcx, [0x006f98b0]
mov rdx, r9
call fcn.005ab768
lea rcx, [0x006f98b0]
call fcn.005ab768
nop
nop dword [rax + rax]
nop word cs:[rax + rax]