Function at 0x41d220
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
lea ebp, [ecx + 3]
and ebp, 0xfffffffc
mov eax, ebp
sub eax, ecx
cmp eax, edx
ja 0x41d27f
cmp eax, 4
ja 0x41d27f
mov edi, edx
sub edi, eax
cmp edi, 4
jb 0x41d27f
lea ebx, [ecx + eax]
mov edx, eax
mov eax, edi
xor esi, esi
and eax, 3
cmp ebp, ecx
mov ebp, 0
je 0x41d3e1
xor ebp, ebp
cmp edx, 8
jae 0x41d336
mov edx, ecx
jmp 0x41d3d0
xor eax, eax
test edx, edx
je 0x41d7cc
cmp edx, 8
mov esi, ecx
jb 0x41d31b
movdqa xmm2, xmmword [0x425e10]
movdqa xmm3, xmmword [0x423750]
mov edi, edx
lea eax, [ecx + 4]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edi, 0xfffffff8
lea esi, [ecx + edi]
mov ebx, edi
nop dword [eax]
movd xmm5, dword [eax - 4]
movd xmm4, dword [eax]
add eax, 8
add ebx, 0xfffffff8
pcmpgtb xmm5, xmm2
pcmpgtb xmm4, xmm2
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm0, xmm5
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm1, xmm4
jne 0x41d2c0
paddd xmm1, xmm0
cmp edi, edx
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
je 0x41d7cc
add ecx, edx
nop dword [eax]
xor edx, edx
cmp byte [esi], 0xc0
lea esi, [esi + 1]
setge dl
add eax, edx
cmp esi, ecx
jne 0x41d320
jmp 0x41d7cc
movdqa xmm2, xmmword [0x425e10]
movdqa xmm3, xmmword [0x423750]
mov ebp, edx
mov dword [esp + 0x20], edx
pxor xmm0, xmm0
pxor xmm1, xmm1
and ebp, 0xfffffff8
lea edx, [ecx + ebp]
add ecx, 4
mov dword [esp + 0x10], ebp
nop word cs:[eax + eax]
nop dword [eax + eax]
movd xmm5, dword [ecx - 4]
movd xmm4, dword [ecx]
add ecx, 8
add ebp, 0xfffffff8
pcmpgtb xmm5, xmm2
pcmpgtb xmm4, xmm2
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm0, xmm5
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm1, xmm4
jne 0x41d370
mov ecx, dword [esp + 0x10]
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
cmp dword [esp + 0x20], ecx
paddd xmm1, xmm0
movd ebp, xmm1
je 0x41d3e1
nop dword [eax]
xor ecx, ecx
cmp byte [edx], 0xc0
lea edx, [edx + 1]
setge cl
add ebp, ecx
cmp edx, ebx
jne 0x41d3d0
test eax, eax
je 0x41d400
mov ecx, edi
xor esi, esi
and ecx, 0xfffffffc
add ecx, ebx
nop
xor edx, edx
cmp byte [ecx], 0xc0
lea ecx, [ecx + 1]
setge dl
add esi, edx
dec eax
jne 0x41d3f0
movdqa xmm3, xmmword [0x4262d0]
add esi, ebp
shr edi, 2
pcmpeqd xmm2, xmm2
jmp 0x41d458
xor edx, edx
mov esi, edx
shr edx, 8
mov ecx, dword [esp + 0xc]
and esi, 0xff00ff
and edx, 0xff00ff
add edx, esi
mov esi, edx
shl esi, 0x10
mov edi, ecx
add esi, edx
sub edi, ebx
shr esi, 0x10
add esi, eax
mov eax, dword [esp]
test bl, 3
lea ebx, [eax + ebx*4]
jne 0x41d772
mov eax, esi
test edi, edi
je 0x41d7cc
mov ebp, ebx
cmp edi, 0xc0
mov ebx, 0xc0
mov dword [esp + 0xc], edi
cmovb ebx, edi
mov dword [esp], ebp
mov edx, ebx
and edx, 0xfc
mov dword [esp + 8], edx
je 0x41d420
mov esi, ebx
xor edx, edx
mov edi, ebp
shr esi, 2
lea ecx, [esi - 1]
and ecx, 0xfffffff
cmp ecx, 7
jb 0x41d722
inc ecx
mov edx, dword [esp]
pxor xmm3, xmm3
pxor xmm2, xmm2
mov dword [esp + 4], ecx
and ecx, 0xfffffff8
mov edi, ecx
shl edi, 4
add edi, edx
lea ebp, [edx + 0x40]
mov edx, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm5, xmmword [ebp - 0x20]
movdqu xmmword [esp + 0x70], xmm2
movdqu xmm1, xmmword [ebp - 0x40]
movdqu xmm2, xmmword [ebp - 0x10]
movdqu xmmword [esp + 0x80], xmm3
movdqu xmm3, xmmword [ebp - 0x30]
movdqu xmm7, xmmword [ebp + 0x10]
movdqu xmm4, xmmword [ebp + 0x30]
movdqa xmm0, xmm5
movdqu xmmword [esp + 0x30], xmm2
movdqu xmmword [esp + 0x50], xmm3
movdqu xmmword [esp + 0x20], xmm1
movdqu xmmword [esp + 0x40], xmm7
punpckldq xmm0, xmm2
movdqa xmm2, xmm1
movdqu xmm1, xmmword [ebp + 0x20]
punpckldq xmm2, xmm3
movdqu xmm3, xmmword [ebp]
sub ebp, 0xffffff80
add edx, 0xfffffff8
movdqa xmm6, xmm2
punpckhqdq xmm2, xmm0
movdqu xmmword [esp + 0x60], xmm2
punpcklqdq xmm6, xmm0
movdqa xmm0, xmm1
punpckhdq xmm1, xmm4
movdqa xmm2, xmm3
punpckldq xmm0, xmm4
movdqu xmm4, xmmword [esp + 0x40]
punpckldq xmm2, xmm7
movdqa xmm7, xmm2
punpckhqdq xmm2, xmm0
punpcklqdq xmm7, xmm0
movdqu xmm0, xmmword [esp + 0x30]
movdqu xmmword [esp + 0x10], xmm7
movdqu xmm7, xmmword [esp + 0x50]
punpckhdq xmm3, xmm4
punpckhdq xmm5, xmm0
movdqu xmm0, xmmword [esp + 0x20]
punpckhdq xmm0, xmm7
movdqu xmm7, xmmword [esp + 0x60]
movdqa xmm4, xmm0
punpckhqdq xmm0, xmm5
punpcklqdq xmm4, xmm5
movdqa xmm5, xmm3
punpckhqdq xmm3, xmm1
movdqu xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm6
psrld xmm6, 6
movdqu xmmword [esp + 0x30], xmm3
movdqu xmm3, xmmword [esp + 0x10]
punpcklqdq xmm5, xmm1
pcmpeqd xmm1, xmm1
pxor xmm0, xmm1
psrld xmm0, 7
por xmm6, xmm0
movdqa xmm0, xmm3
psrld xmm3, 6
pxor xmm0, xmm1
movdqa xmm1, xmmword [0x4262d0]
psrld xmm0, 7
por xmm3, xmm0
movdqu xmm0, xmmword [esp + 0x80]
pand xmm6, xmm1
pand xmm3, xmm1
paddd xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x70]
paddd xmm3, xmm0
movdqa xmm0, xmm7
psrld xmm7, 6
movdqu xmmword [esp + 0x10], xmm3
pcmpeqd xmm3, xmm3
pxor xmm0, xmm3
psrld xmm0, 7
por xmm7, xmm0
movdqa xmm0, xmm2
psrld xmm2, 6
pxor xmm0, xmm3
pand xmm7, xmm1
psrld xmm0, 7
por xmm2, xmm0
movdqa xmm0, xmm4
psrld xmm4, 6
pxor xmm0, xmm3
pand xmm2, xmm1
psrld xmm0, 7
por xmm4, xmm0
movdqa xmm0, xmm5
psrld xmm5, 6
pxor xmm0, xmm3
movdqu xmm3, xmmword [esp + 0x10]
pand xmm4, xmm1
psrld xmm0, 7
paddd xmm4, xmm7
por xmm5, xmm0
paddd xmm4, xmm6
pcmpeqd xmm6, xmm6
pand xmm5, xmm1
paddd xmm5, xmm2
paddd xmm5, xmm3
movdqu xmm3, xmmword [esp + 0x20]
movdqa xmm2, xmm3
psrld xmm3, 6
pxor xmm2, xmm6
psrld xmm2, 7
por xmm3, xmm2
movdqu xmm2, xmmword [esp + 0x30]
pand xmm3, xmm1
paddd xmm3, xmm4
movdqa xmm7, xmm2
psrld xmm2, 6
pxor xmm7, xmm6
psrld xmm7, 7
por xmm2, xmm7
pand xmm2, xmm1
paddd xmm2, xmm5
jne 0x41d4d0
paddd xmm2, xmm3
cmp dword [esp + 4], ecx
movdqa xmm3, xmmword [0x4262d0]
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pcmpeqd xmm2, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edx, xmm1
je 0x41d422
shl esi, 4
add esi, dword [esp]
nop dword [eax + eax]
movdqu xmm0, xmmword [edi]
add edi, 0x10
movdqa xmm1, xmm0
psrld xmm0, 6
pxor xmm1, xmm2
psrld xmm1, 7
por xmm0, xmm1
pand xmm0, xmm3
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd ebp, xmm0
add edx, ebp
cmp edi, esi
jne 0x41d730
jmp 0x41d422
mov edx, dword [esp + 8]
cmp ecx, 0xc0
lea eax, [eax + edx*4]
mov edx, 0xc0
cmovb edx, ecx
xor ecx, ecx
and edx, 3
shl edx, 2
nop
mov edi, dword [eax]
add eax, 4
mov ebx, edi
shr edi, 6
not ebx
shr ebx, 7
or edi, ebx
and edi, 0x1010101
add ecx, edi
add edx, 0xfffffffc
jne 0x41d790
mov eax, ecx
shr ecx, 8
and eax, 0xff00ff
and ecx, 0xff00ff
add ecx, eax
mov eax, ecx
shl eax, 0x10
add eax, ecx
shr eax, 0x10
add eax, esi
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret