Function at 0x4b3090
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
mov edi, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, edx
mov ebx, edx
cmovb ebx, ecx
test ebx, ebx
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
je 0x4b3106
xor eax, eax
xor ebp, ebp
mov dword [esp + 4], esi
nop word cs:[eax + eax]
nop
mov edx, dword [esi + ebp*4]
mov ecx, eax
mov eax, ebx
mov ebx, edi
mov edi, dword [edi + ebp*4]
mov esi, edx
sub esi, edi
xor edi, edx
xor esi, edx
or esi, edi
xor esi, edx
sar esi, 0x1f
or esi, 1
test edi, edi
mov edi, ebx
mov ebx, eax
mov eax, ecx
cmovne eax, esi
mov esi, dword [esp + 4]
add ebp, 1
cmp ebx, ebp
jne 0x4b30d0
jmp 0x4b3108
xor eax, eax
mov ecx, dword [esp + 8]
mov ebx, ecx
mov edx, dword [esp + 0xc]
sub ebx, edx
jae 0x4b3155
mov ebx, edx
sub ebx, ecx
xor esi, esi
cmp ebx, 8
jb 0x4b3280
mov esi, ebx
and esi, 0xfffffff8
mov dword [esp], esi
add esi, 0xfffffff8
mov edx, esi
shr edx, 3
add edx, 1
mov ebp, edx
and ebp, 3
cmp esi, 0x18
mov dword [esp + 4], ebx
jae 0x4b31a4
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x4b3217
jbe 0x4b339d
xor edi, edi
cmp ebx, 8
jb 0x4b3380
mov dword [esp], eax
mov dword [esp + 0x14], ebx
and ebx, 0xfffffff8
mov ecx, esi
mov esi, edx
mov dword [esp + 0x10], ebx
lea edx, [ebx - 8]
mov ebp, edx
shr ebp, 3
add ebp, 1
mov eax, ebp
and eax, 3
cmp edx, 0x18
mov edx, esi
mov esi, ecx
jae 0x4b329f
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x4b3317
and edx, 0xfffffffc
lea esi, [edi + ecx*4]
add esi, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop word [eax + 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 edx, 0xfffffffc
jne 0x4b31c0
test ebp, ebp
je 0x4b324a
add ebx, ecx
lea esi, [edi + ebx*4]
add esi, 0x10
shl ebp, 5
xor ebx, ebx
nop dword [eax + eax]
movdqu xmm2, xmmword [esi + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp ebp, ebx
jne 0x4b3230
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov ebx, dword [esp]
cmp dword [esp + 4], ebx
mov edx, dword [esp + 0xc]
je 0x4b328a
add ecx, ebx
nop word cs:[eax + eax]
nop dword [eax]
or esi, dword [edi + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x4b3280
mov ecx, esi
not ecx
add esi, 0xffffffff
and esi, ecx
sar esi, 0x1f
not esi
or eax, esi
jmp 0x4b339d
and ebp, 0xfffffffc
lea ebx, [esi + edx*4]
add ebx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [ebx + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebx + edi*4 - 0x50]
movdqu xmm3, xmmword [ebx + edi*4 - 0x40]
movdqu xmm4, xmmword [ebx + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebx + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebx + edi*4]
por xmm1, xmm2
add edi, 0x20
add ebp, 0xfffffffc
jne 0x4b32c0
test eax, eax
je 0x4b334a
add edi, edx
lea edi, [esi + edi*4]
add edi, 0x10
shl eax, 5
xor ebx, ebx
nop dword [eax + eax]
movdqu xmm2, xmmword [edi + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edi + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp eax, ebx
jne 0x4b3330
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edi, xmm0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x14], ebx
mov ecx, dword [esp + 8]
mov eax, dword [esp]
je 0x4b338a
add edx, ebx
nop word [eax + eax]
or edi, dword [esi + edx*4]
add edx, 1
cmp ecx, edx
jne 0x4b3380
mov ecx, edi
not ecx
add edi, 0xffffffff
and edi, ecx
sar edi, 0x1f
and eax, edi
add eax, edi
add eax, 1
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret