Function at 0x45dd40
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 0x45dbcf
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 0x45db72
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 0x45db61
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 0x45db65
movq qword [eax], xmm2
add eax, 8
add edx, 8
test esi, esi
jne 0x45db20
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x45dbb5
mov ecx, dword [edx]
test ecx, 0xff000000
je 0x45dbac
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 0x45dbb2
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 0x45db13
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 0x45dd31
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 0x45dcf3
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 0x45dcc0
cmp dword [ebp - 4], 0
je 0x45dd21
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 0x45dcb1
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 0x45dd61
sub eax, 1
je 0x45dd5b
sub eax, 1
jne 0x45dd61
pop ebp
jmp 0x45da40
pop ebp
jmp 0x45dbe0
pop ebp
ret