Function at 0x411ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edx + 0x10]
cmp dword [ecx + 0x10], eax
jne 0x411ad1
sub eax, 1
je 0x411acb
sub eax, 1
jne 0x411ad1
pop ebp
jmp 0x411c40
pop ebp
jmp 0x411ae0
pop ebp
ret
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
mov eax, dword [ecx]
xorps xmm4, xmm4
mov dword [ebp - 0x10], eax
xorps xmm3, xmm3
mov eax, dword [edx]
xorps xmm2, xmm2
mov dword [ebp - 8], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp ecx, dword [edx + 8]
mov dword [ebp - 0xc], eax
cmova ecx, dword [edx + 8]
mov dword [ebp - 4], ecx
mov ecx, dword [ebx + 8]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
mov edi, dword [edx + 0xc]
movzx edx, al
movzx eax, cl
pinsrw xmm4, eax, 0
pinsrw xmm4, edx, 1
pinsrw xmm4, esi, 2
pinsrw xmm4, eax, 4
movzx eax, word [ebx + 0xc]
pinsrw xmm4, edx, 5
pinsrw xmm4, esi, 6
mov esi, dword [ebp - 0xc]
cmp esi, edi
pinsrw xmm3, eax, 0
pinsrw xmm3, eax, 1
cmova esi, edi
pinsrw xmm3, eax, 2
pinsrw xmm3, eax, 4
pinsrw xmm3, eax, 5
pinsrw xmm3, eax, 6
psraw xmm3, 1
test esi, esi
je 0x411c31
mov eax, dword [ebp - 4]
mov ecx, eax
mov edi, dword [ebp - 0x10]
shr ecx, 1
and eax, 1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
mov edx, eax
dec esi
mov eax, dword [ebp - 0xc]
mov ecx, edi
test eax, eax
je 0x411bf3
nop dword [eax]
movq xmm1, qword [edx]
add edx, 8
punpcklbw xmm1, xmm2
movaps xmm0, xmm1
pxor xmm0, xmm4
psubw xmm0, xmm1
pmullw xmm0, xmm3
psraw xmm0, 7
paddw xmm0, xmm1
packuswb xmm0, xmm2
movq qword [ecx], xmm0
add ecx, 8
sub eax, 1
jne 0x411bc0
cmp dword [ebp - 4], 0
je 0x411c21
movd xmm1, dword [edx]
punpcklbw xmm1, xmm2
movaps xmm0, xmm1
pxor xmm0, xmm4
psubw xmm0, xmm1
pmullw xmm0, xmm3
psraw xmm0, 7
paddw xmm0, xmm1
packuswb xmm0, xmm2
movd dword [ecx], xmm0
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x18]
add edi, dword [ebp - 0x14]
mov dword [ebp - 8], eax
test esi, esi
jne 0x411bb1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
mov eax, dword [ecx]
xorps xmm4, xmm4
mov dword [ebp - 0x10], eax
xorps xmm3, xmm3
mov eax, dword [edx]
xorps xmm2, xmm2
mov dword [ebp - 4], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp ecx, dword [edx + 8]
mov dword [ebp - 8], eax
cmova ecx, dword [edx + 8]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebx + 8]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
mov edi, dword [edx + 0xc]
movzx edx, al
movzx eax, cl
pinsrw xmm4, eax, 0
pinsrw xmm4, edx, 1
pinsrw xmm4, esi, 2
pinsrw xmm4, eax, 4
movzx eax, word [ebx + 0xc]
pinsrw xmm4, edx, 5
pinsrw xmm4, esi, 6
pinsrw xmm3, eax, 0
pinsrw xmm3, eax, 1
pinsrw xmm3, eax, 2
pinsrw xmm3, eax, 4
pinsrw xmm3, eax, 5
pinsrw xmm3, eax, 6
mov eax, dword [ebp - 8]
cmp eax, edi
psraw xmm3, 1
cmova eax, edi
mov edi, eax
test edi, edi
je 0x411dcf
mov eax, dword [ebp - 0xc]
mov esi, eax
mov ecx, dword [ebp - 4]
shr esi, 1
and eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], esi
dec edi
mov edx, ecx
test esi, esi
je 0x411d72
nop word [eax + eax]
movq xmm1, qword [edx]
dec esi
movaps xmm0, xmm1
pcmpeqb xmm0, xmm2
pmovmskb ecx, xmm0
and ecx, 0x88
cmp cl, 0x88
je 0x411d61
punpcklbw xmm1, xmm2
movaps xmm0, xmm1
pxor xmm0, xmm4
psubw xmm0, xmm1
pmullw xmm0, xmm3
psraw xmm0, 7
paddw xmm0, xmm1
packuswb xmm0, xmm2
movq qword [eax], xmm0
jmp 0x411d65
movq qword [eax], xmm2
add eax, 8
add edx, 8
test esi, esi
jne 0x411d20
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x411db5
mov ecx, dword [edx]
test ecx, 0xff000000
je 0x411dac
movd xmm1, ecx
punpcklbw xmm1, xmm2
movaps xmm0, xmm1
pxor xmm0, xmm4
psubw xmm0, xmm1
pmullw xmm0, xmm3
psraw xmm0, 7
paddw xmm0, xmm1
packuswb xmm0, xmm2
movd dword [eax], xmm0
jmp 0x411db2
mov dword [eax], 0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ecx
test edi, edi
jne 0x411d13
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret