Function at 0x4df8a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [ebp + 0xc]
cmp edx, eax
cmovb eax, edx
test eax, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ecx
je 0x4df916
xor esi, esi
xor edi, edi
mov dword [ebp - 0x14], eax
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + edi*4]
mov ebx, edx
xor ebx, eax
mov ecx, edx
sub ecx, eax
lea eax, [ebx - 1]
xor ecx, edx
or ecx, ebx
not ebx
and eax, ebx
sar eax, 0x1f
xor ecx, edx
sar ecx, 0x1f
mov edx, ecx
not ecx
and ecx, 1
or ecx, edx
mov edx, eax
and edx, esi
not eax
and eax, ecx
or eax, edx
add edi, 1
mov esi, eax
cmp dword [ebp - 0x14], edi
jne 0x4df8d0
jmp 0x4df918
xor eax, eax
mov edx, dword [ebp - 0x18]
mov esi, edx
mov edi, dword [ebp + 0xc]
sub esi, edi
jae 0x4df937
mov esi, edi
sub esi, edx
xor ecx, ecx
cmp esi, 7
ja 0x4df97b
mov esi, dword [ebp + 8]
jmp 0x4dfa70
cmp edi, edx
jae 0x4dfb93
xor ecx, ecx
cmp esi, 7
jbe 0x4dfb5e
mov dword [ebp - 0x14], esi
and esi, 0xfffffff8
mov dword [ebp - 0x1c], esi
lea edx, [esi - 8]
mov edi, edx
shr edi, 3
add edi, 1
mov ecx, edi
and ecx, 3
cmp edx, 0x18
jae 0x4dfa91
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x4dfb07
mov ecx, esi
and ecx, 0xfffffff8
mov dword [ebp - 0x14], ecx
add ecx, 0xfffffff8
mov ebx, ecx
shr ebx, 3
add ebx, 1
mov edi, ebx
and edi, 3
cmp ecx, 0x18
mov dword [ebp - 0x10], esi
jae 0x4df9a7
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
jmp 0x4dfa17
mov ecx, dword [ebp + 8]
lea esi, [ecx + edx*4]
add esi, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop
movdqu xmm2, xmmword [esi + ecx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ecx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [esi + ecx*4 - 0x50]
movdqu xmm3, xmmword [esi + ecx*4 - 0x40]
movdqu xmm4, xmmword [esi + ecx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [esi + ecx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ecx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [esi + ecx*4]
por xmm1, xmm2
add ecx, 0x20
add ebx, 4
jne 0x4df9c0
test edi, edi
mov esi, dword [ebp + 8]
je 0x4dfa47
add ecx, edx
lea ecx, [esi + ecx*4]
add ecx, 0x10
neg edi
nop dword [eax + eax]
movdqu xmm2, xmmword [ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [ecx]
por xmm1, xmm2
add ecx, 0x20
inc edi
jne 0x4dfa30
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov edi, dword [ebp - 0x14]
cmp dword [ebp - 0x10], edi
je 0x4dfa7a
add edx, edi
mov edi, dword [ebp + 0xc]
nop
or ecx, dword [esi + edx*4]
add edx, 1
cmp edi, edx
jne 0x4dfa70
mov edx, ecx
not edx
add ecx, 0xffffffff
and ecx, edx
sar ecx, 0x1f
mov edx, ecx
and edx, eax
not ecx
jmp 0x4dfb8f
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
lea esi, [esi + edx*4]
add esi, 0x70
and edi, 0xfffffffc
neg edi
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop dword [eax]
movdqu xmm2, xmmword [esi + ebx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ebx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [esi + ebx*4 - 0x50]
movdqu xmm3, xmmword [esi + ebx*4 - 0x40]
movdqu xmm4, xmmword [esi + ebx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [esi + ebx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [esi + ebx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [esi + ebx*4]
por xmm1, xmm2
add ebx, 0x20
add edi, 4
jne 0x4dfab0
test ecx, ecx
mov edi, dword [ebp + 0xc]
je 0x4dfb37
add ebx, edi
mov edx, dword [ebp - 0x10]
lea esi, [edx + ebx*4]
add esi, 0x10
neg ecx
nop dword [eax + eax]
movdqu xmm2, xmmword [esi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi]
por xmm1, xmm2
add esi, 0x20
inc ecx
jne 0x4dfb20
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], esi
mov edx, dword [ebp - 0x18]
je 0x4dfb7a
add edi, esi
mov esi, dword [ebp - 0x10]
nop word cs:[eax + eax]
nop dword [eax + eax]
or ecx, dword [esi + edi*4]
add edi, 1
cmp edx, edi
jne 0x4dfb70
mov edx, ecx
not edx
add ecx, 0xffffffff
and ecx, edx
sar ecx, 0x1f
mov edx, ecx
and edx, eax
not ecx
and ecx, 1
or ecx, edx
mov eax, ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret