Function at 0x411670
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edx + 0x10]
cmp dword [ecx + 0x10], eax
jne 0x411691
sub eax, 1
je 0x41168b
sub eax, 1
jne 0x411691
pop ebp
jmp 0x411800
pop ebp
jmp 0x4116a0
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 0x4117f1
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 0x4117b3
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 0x411780
cmp dword [ebp - 4], 0
je 0x4117e1
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 0x411771
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 0x41198f
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 0x411932
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 0x411921
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 0x411925
movq qword [eax], xmm2
add eax, 8
add edx, 8
test esi, esi
jne 0x4118e0
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x411975
mov ecx, dword [edx]
test ecx, 0xff000000
je 0x41196c
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 0x411972
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 0x4118d3
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret