Function at 0x45afa0
Capabilities:
Encode data using xor

Disassembly:
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 0x45ae2f
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 0x45add2
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 0x45adc1
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 0x45adc5
movq qword [eax], xmm2
add eax, 8
add edx, 8
test esi, esi
jne 0x45ad80
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x45ae15
mov ecx, dword [edx]
test ecx, 0xff000000
je 0x45ae0c
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 0x45ae12
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 0x45ad73
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 - 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 0x45af91
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 0x45af53
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 0x45af20
cmp dword [ebp - 4], 0
je 0x45af81
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 0x45af11
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push ebp
mov ebp, esp
mov eax, dword [edx + 0x10]
cmp dword [ecx + 0x10], eax
jne 0x45afc1
sub eax, 1
je 0x45afbb
sub eax, 1
jne 0x45afc1
pop ebp
jmp 0x45aca0
pop ebp
jmp 0x45ae40
pop ebp
ret