Function at 0x4114f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edx + 0x10]
cmp dword [ecx + 0x10], eax
jne 0x411511
sub eax, 1
je 0x41150b
sub eax, 1
jne 0x411511
pop ebp
jmp 0x411680
pop ebp
jmp 0x411520
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 0x411671
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 0x411633
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 0x411600
cmp dword [ebp - 4], 0
je 0x411661
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 0x4115f1
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 0x41180f
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 0x4117b2
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 0x4117a1
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 0x4117a5
movq qword [eax], xmm2
add eax, 8
add edx, 8
test esi, esi
jne 0x411760
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x4117f5
mov ecx, dword [edx]
test ecx, 0xff000000
je 0x4117ec
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 0x4117f2
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 0x411753
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret