Function at 0x1007a7d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov ecx, dword [ebp + 0x10]
xorps xmm1, xmm1
mov eax, dword [ebp + 0x30]
shr eax, 9
and eax, 1
movsd qword [ebp - 0x28], xmm1
lea edx, [ecx + 1]
mov dword [ebp + 0x30], eax
sar edx, 1
push esi
test eax, eax
je 0x1007a811
mov eax, dword [ebp + 8]
movsd xmm0, qword [eax + 8]
lea esi, [eax + 8]
movsd qword [ebp - 0x28], xmm0
movsd xmm0, qword [eax]
movsd qword [esi], xmm0
jmp 0x1007a814
mov esi, dword [ebp + 8]
mov dword [ebp - 4], esi
cmp ecx, 1
jne 0x1007a831
movsd xmm0, qword [esi]
mulsd xmm0, qword [ebp + 0x34]
mov eax, dword [ebp + 0xc]
movsd qword [eax], xmm0
jmp 0x1007abb9
cmp ecx, 2
jne 0x1007a863
movsd xmm3, qword [esi]
movsd xmm2, qword [esi + 8]
mov eax, dword [ebp + 0xc]
addsd xmm2, xmm3
subsd xmm3, qword [esi + 8]
mulsd xmm2, qword [ebp + 0x34]
mulsd xmm3, qword [ebp + 0x34]
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm3
jmp 0x1007abb9
push edi
test cl, 1
je 0x1007a97d
movsd xmm0, qword [esi]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x10], 1
movsd qword [esi], xmm0
movsd qword [esi + 8], xmm1
cmp edx, 1
jle 0x1007a8f9
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x1c]
add edi, 8
movsd xmm3, qword [0x101a23f0]
sub eax, 4
lea ecx, [eax + ecx*4]
mov eax, 1
mov dword [ebp - 0xc], ecx
mov esi, dword [ebp + 0x1c]
lea edi, [edi + 0x10]
mov ecx, dword [ecx]
movsd xmm2, qword [edi - 8]
add ecx, ecx
movsd xmm1, qword [edi - 0x10]
movapd xmm0, xmm2
mov eax, dword [esi + eax*4]
xorpd xmm0, xmm3
mov esi, dword [ebp + 0xc]
add eax, eax
movsd qword [esi + eax*8], xmm1
movsd qword [esi + eax*8 + 8], xmm0
mov eax, dword [ebp - 0x10]
movsd qword [esi + ecx*8], xmm1
inc eax
movsd qword [esi + ecx*8 + 8], xmm2
mov ecx, dword [ebp - 0xc]
sub ecx, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
cmp eax, edx
jl 0x1007a8a8
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [0x1019b448]
sub esp, 8
movsd qword [esp], xmm0
push pe_nt_image_headers32
push dword [ebp + 0x2c]
push 0
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push esi
push esi
call fcn.1007cf40
movsd xmm0, qword [esi]
mov eax, 1
movsd xmm2, qword [ebp + 0x34]
add esp, 0x34
mov edx, dword [ebp + 0x10]
mulsd xmm0, xmm2
movsd qword [esi], xmm0
cmp edx, eax
jle 0x1007abb5
lea ecx, [esi + 0x10]
movsd xmm1, qword [ecx + 0x10]
lea ecx, [ecx + 0x20]
movsd xmm0, qword [ecx - 0x20]
mulsd xmm1, xmm2
mulsd xmm0, xmm2
movsd qword [esi + eax*8 + 8], xmm1
movsd qword [esi + eax*8], xmm0
add eax, 2
cmp eax, edx
jl 0x1007a951
jmp 0x1007abb5
movsd xmm2, qword [esi + ecx*8 - 8]
xor eax, eax
mov edi, dword [ebp + 0xc]
movaps xmm1, xmm2
subsd xmm1, qword [esi]
addsd xmm2, qword [esi]
mov ecx, dword [ebp + 0x20]
cmp esi, edi
movsd xmm7, qword [esi + 8]
sete al
add ecx, 0x10
mov dword [ebp - 0x10], eax
mov eax, 2
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 0x10]
movsd qword [edi], xmm2
movsd qword [edi + 8], xmm1
mov dword [ebp - 8], eax
cmp edx, eax
jle 0x1007aadb
lea eax, [edi + 0x18]
add ecx, 0xfffffffe
mov dword [ebp - 0x14], eax
mov eax, edi
sub eax, esi
mov dword [ebp - 0x20], eax
mov eax, esi
sub eax, edi
lea ecx, [esi + ecx*8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
jmp 0x1007a9f0
cmp dword [ebp - 0x10], 0
movsd xmm2, qword [esi + eax*8]
mov esi, dword [ebp - 0xc]
movapd xmm6, xmm2
movsd xmm4, qword [ecx - 8]
addsd xmm2, qword [ecx]
subsd xmm6, qword [ecx]
movsd xmm1, qword [esi + 8]
addsd xmm4, xmm7
subsd xmm7, qword [ecx - 8]
movsd xmm5, qword [esi]
movaps xmm0, xmm1
mov eax, dword [ebp - 0x1c]
movapd xmm3, xmm5
mov esi, dword [ebp - 0x14]
mulsd xmm0, xmm2
mulsd xmm1, xmm7
mulsd xmm5, xmm2
mulsd xmm3, xmm7
movsd xmm7, qword [eax + esi]
mov eax, dword [ebp - 8]
subsd xmm5, xmm1
movapd xmm1, xmm4
addsd xmm3, xmm0
movapd xmm0, xmm6
xorpd xmm0, xmmword [0x101a23f0]
subsd xmm1, xmm5
addsd xmm5, xmm4
subsd xmm0, xmm3
subsd xmm6, xmm3
je 0x1007aa8a
mov edi, dword [ebp - 0x20]
movsd qword [esi - 8], xmm1
movsd qword [esi], xmm0
movsd qword [edi + ecx], xmm5
movsd qword [edi + ecx + 8], xmm6
mov edi, dword [ebp + 0xc]
jmp 0x1007aaba
mov ecx, eax
mov eax, dword [ebp + 0x1c]
sar ecx, 1
mov eax, dword [eax + ecx*4]
movsd qword [edi + eax*8], xmm1
movsd qword [edi + eax*8 + 8], xmm0
mov eax, edx
sub eax, ecx
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x18]
movsd qword [edi + eax*8], xmm5
movsd qword [edi + eax*8 + 8], xmm6
mov eax, dword [ebp - 8]
add dword [ebp - 0xc], 0x10
add esi, 0x10
add eax, 2
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 4]
sub ecx, 0x10
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp eax, edx
jl 0x1007a9f0
cmp eax, edx
jg 0x1007ab1a
cmp dword [ebp - 0x10], 0
movsd xmm1, qword [esi + edx*8]
mulsd xmm7, qword [0x101a23a0]
mulsd xmm1, qword [0x101a23a0]
je 0x1007ab07
movsd qword [edi + edx*8], xmm7
movsd qword [edi + edx*8 + 8], xmm1
jmp 0x1007ab1a
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + edx*4]
add eax, eax
movsd qword [edi + eax*8], xmm7
movsd qword [edi + eax*8 + 8], xmm1
mov esi, dword [ebp + 0x18]
xor ecx, ecx
movsd xmm0, qword [0x1019b448]
mov eax, pe_nt_image_headers32
mov dword [ebp - 0x20], 0
sar dword [esi], 1
cmp dword [esi], 1
sete cl
sub esp, 8
cmp dword [ebp - 0x10], 0
cmovne eax, dword [ebp - 0x20]
movsd qword [esp], xmm0
push eax
push dword [ebp + 0x2c]
lea eax, [esi + ecx*4]
push 0
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x14]
sub eax, ecx
push eax
push edx
push edi
push edi
call fcn.1007cf40
shl dword [esi], 1
add esp, 0x34
mov edx, dword [ebp + 0x10]
xor eax, eax
test edx, edx
jle 0x1007abb5
movsd xmm2, qword [ebp + 0x34]
movapd xmm1, xmm2
xorpd xmm1, xmmword [0x101a23f0]
jmp 0x1007ab90
movsd xmm0, qword [edi + eax*8]
mulsd xmm0, xmm2
movsd qword [edi + eax*8], xmm0
movapd xmm0, xmm1
mulsd xmm0, qword [edi + eax*8 + 8]
movsd qword [edi + eax*8 + 8], xmm0
add eax, 2
cmp eax, edx
jl 0x1007ab90
mov esi, dword [ebp - 4]
pop edi
cmp dword [ebp + 0x30], 0
je 0x1007abc8
movsd xmm0, qword [ebp - 0x28]
movsd qword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret