Function at 0x4e1280
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
mov ebp, dword [esp + 0x10]
mov eax, ebp
sub eax, ebx
and eax, 0xfffffffc
push esi
push edi
cmp eax, 0x80
jle 0x4e1620
nop
mov eax, ebp
sub eax, ebx
cmp dword [esp + 0x1c], 0
jle 0x4e1686
movss xmm2, dword [ebx]
sar eax, 3
cvtps2pd xmm0, xmm2
lea esi, [ebx + eax*4]
lea eax, [ebp - 4]
sub eax, ebx
sar eax, 2
cmp eax, 0x28
jle 0x4e142d
inc eax
sar eax, 3
lea ecx, [eax*8]
shl eax, 2
mov dword [esp + 0x14], ecx
movss xmm3, dword [eax + ebx]
cvtps2pd xmm1, xmm3
comisd xmm1, xmm0
jbe 0x4e12f6
movss dword [eax + ebx], xmm2
movss dword [ebx], xmm3
movss xmm1, dword [ecx + ebx]
movss xmm2, dword [eax + ebx]
cvtps2pd xmm3, xmm1
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e132c
movss dword [ecx + ebx], xmm2
movss dword [eax + ebx], xmm1
movss xmm2, dword [ebx]
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e132c
movss dword [eax + ebx], xmm2
movss dword [ebx], xmm1
movss xmm3, dword [esi]
mov ecx, esi
sub ecx, eax
cvtps2pd xmm1, xmm3
movss xmm2, dword [ecx]
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4e134c
movss dword [esi], xmm2
movss dword [ecx], xmm3
movss xmm1, dword [eax + esi]
movss xmm2, dword [esi]
cvtps2pd xmm3, xmm1
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e137f
movss dword [eax + esi], xmm2
movss dword [esi], xmm1
movss xmm2, dword [ecx]
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e137f
movss dword [esi], xmm2
movss dword [ecx], xmm1
lea ecx, [ebp - 4]
lea edi, [ebp - 4]
sub ecx, eax
sub edi, dword [esp + 0x14]
movss xmm3, dword [ecx]
movss xmm2, dword [edi]
cvtps2pd xmm1, xmm3
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4e13a7
movss dword [ecx], xmm2
movss dword [edi], xmm3
movss xmm1, dword [ebp - 4]
movss xmm2, dword [ecx]
cvtps2pd xmm3, xmm1
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e13da
movss dword [ebp - 4], xmm2
movss dword [ecx], xmm1
movss xmm2, dword [edi]
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e13da
movss dword [ecx], xmm2
movss dword [edi], xmm1
movss xmm3, dword [esi]
movss xmm2, dword [eax + ebx]
cvtps2pd xmm1, xmm3
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4e13f8
movss dword [esi], xmm2
movss dword [eax + ebx], xmm3
movss xmm1, dword [ecx]
movss xmm2, dword [esi]
cvtps2pd xmm3, xmm1
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e1475
movss dword [ecx], xmm2
movss dword [esi], xmm1
movss xmm2, dword [eax + ebx]
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e1475
movss dword [esi], xmm2
movss dword [eax + ebx], xmm1
jmp 0x4e1475
movss xmm3, dword [esi]
cvtps2pd xmm1, xmm3
comisd xmm1, xmm0
jbe 0x4e1442
movss dword [esi], xmm2
movss dword [ebx], xmm3
movss xmm1, dword [ebp - 4]
movss xmm2, dword [esi]
cvtps2pd xmm3, xmm1
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e1475
movss dword [ebp - 4], xmm2
movss dword [esi], xmm1
movss xmm2, dword [ebx]
cvtps2pd xmm0, xmm2
comisd xmm3, xmm0
jbe 0x4e1475
movss dword [esi], xmm2
movss dword [ebx], xmm1
lea edi, [esi + 4]
cmp ebx, esi
jae 0x4e14a1
movss xmm1, dword [esi]
movss xmm2, dword [esi - 4]
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
ja 0x4e14a1
comisd xmm1, xmm0
ja 0x4e14a1
add esi, 0xfffffffc
movaps xmm1, xmm2
cmp ebx, esi
jb 0x4e1480
cmp edi, ebp
jae 0x4e14d1
movss xmm2, dword [esi]
nop dword [eax]
movss xmm0, dword [edi]
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm2
comisd xmm0, xmm1
ja 0x4e14d1
comisd xmm1, xmm0
ja 0x4e14d1
add edi, 4
cmp edi, ebp
jb 0x4e14b0
mov ecx, edi
mov edx, esi
cmp ecx, ebp
jae 0x4e1514
nop dword [eax]
movss xmm0, dword [esi]
movss xmm2, dword [ecx]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm2
comisd xmm0, xmm1
ja 0x4e150d
comisd xmm1, xmm0
ja 0x4e1514
cmp edi, ecx
je 0x4e150a
movss xmm0, dword [edi]
movss dword [edi], xmm2
movss dword [ecx], xmm0
add edi, 4
add ecx, 4
cmp ecx, ebp
jb 0x4e14e0
cmp edx, ebx
jbe 0x4e1559
lea eax, [edx - 4]
nop dword [eax + eax]
movss xmm2, dword [eax]
movss xmm1, dword [esi]
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
ja 0x4e154d
comisd xmm1, xmm0
ja 0x4e1557
sub esi, 4
cmp esi, eax
je 0x4e154d
movss xmm0, dword [esi]
movss dword [esi], xmm2
movss dword [eax], xmm0
sub edx, 4
sub eax, 4
cmp ebx, edx
jb 0x4e1520
cmp edx, ebx
jne 0x4e1589
cmp ecx, ebp
je 0x4e15cb
cmp edi, ecx
je 0x4e156f
movss xmm0, dword [esi]
mov eax, dword [edi]
mov dword [esi], eax
movss dword [edi], xmm0
movss xmm0, dword [esi]
add edi, 4
mov eax, dword [ecx]
mov dword [esi], eax
add esi, 4
movss dword [ecx], xmm0
add ecx, 4
jmp 0x4e14d5
add edx, 0xfffffffc
cmp ecx, ebp
jne 0x4e15b7
sub esi, 4
cmp edx, esi
je 0x4e15a3
movss xmm0, dword [edx]
mov eax, dword [esi]
mov dword [edx], eax
movss dword [esi], xmm0
movss xmm0, dword [esi]
sub edi, 4
mov eax, dword [edi]
mov dword [esi], eax
movss dword [edi], xmm0
jmp 0x4e14d5
movss xmm0, dword [ecx]
mov eax, dword [edx]
mov dword [ecx], eax
add ecx, 4
movss dword [edx], xmm0
jmp 0x4e14d5
mov edx, dword [esp + 0x1c]
mov ecx, ebp
push dword [esp + 0x20]
mov eax, edx
sub ecx, edi
sar eax, 2
and ecx, 0xfffffffc
sar edx, 1
add edx, eax
mov eax, esi
sub eax, ebx
mov dword [esp + 0x20], edx
and eax, 0xfffffffc
push edx
cmp eax, ecx
jge 0x4e15fe
push esi
push ebx
call fcn.004e1280
mov ebx, edi
jmp 0x4e160b
push ebp
push edi
call fcn.004e1280
mov ebp, esi
mov dword [esp + 0x28], ebp
mov eax, ebp
add esp, 0x10
sub eax, ebx
and eax, 0xfffffffc
cmp eax, 0x80
jg 0x4e12a0
cmp ebx, ebp
je 0x4e17cd
lea esi, [ebx + 4]
cmp esi, ebp
je 0x4e17cd
mov edi, 4
sub edi, ebx
nop word [eax + eax]
movss xmm3, dword [esi]
mov ecx, esi
movss xmm0, dword [ebx]
cvtps2pd xmm1, xmm3
cvtps2pd xmm0, xmm0
movss dword [esp + 0x18], xmm3
comisd xmm1, xmm0
jbe 0x4e178f
lea ecx, [esi - 4]
mov eax, esi
add ecx, edi
push ecx
sub eax, ecx
add eax, 4
push ebx
push eax
call fcn.0067d850
movss xmm0, dword [esp + 0x24]
add esp, 0xc
movss dword [ebx], xmm0
jmp 0x4e17c2
sar eax, 2
mov esi, eax
mov dword [esp + 0x14], eax
sar esi, 1
test esi, esi
jle 0x4e1738
lea edi, [eax - 1]
sar edi, 1
lea ebp, [eax - 1]
movss xmm3, dword [ebx + esi*4 - 4]
dec esi
mov edx, esi
mov ecx, esi
cmp esi, edi
jge 0x4e16e3
add ecx, ecx
xor eax, eax
movss xmm1, dword [ebx + ecx*4 + 8]
movss xmm0, dword [ebx + ecx*4 + 4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
seta al
xor eax, 1
inc eax
add ecx, eax
mov eax, dword [ebx + ecx*4]
mov dword [ebx + edx*4], eax
mov edx, ecx
cmp ecx, edi
jl 0x4e16b0
mov eax, dword [esp + 0x14]
cmp edx, edi
jne 0x4e16f4
test al, 1
jne 0x4e16f4
mov eax, dword [ebx + eax*4 - 4]
mov dword [ebx + edx*4], eax
mov edx, ebp
lea eax, [edx - 1]
sar eax, 1
cmp esi, edx
jge 0x4e1723
nop dword [eax]
movss xmm2, dword [ebx + eax*4]
xorps xmm0, xmm0
cvtps2pd xmm1, xmm2
cvtss2sd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x4e1723
movss dword [ebx + edx*4], xmm2
mov edx, eax
dec eax
sar eax, 1
cmp esi, edx
jl 0x4e1700
mov eax, dword [esp + 0x14]
movss dword [ebx + edx*4], xmm3
test esi, esi
jg 0x4e16a1
mov ebp, dword [esp + 0x18]
mov eax, ebp
sub eax, ebx
and eax, 0xfffffffc
cmp eax, 8
jl 0x4e17cd
sub ebp, ebx
nop word [eax + eax]
movss xmm0, dword [ebx + ebp - 4]
mov eax, dword [ebx]
push dword [esp + 0x20]
mov dword [ebx + ebp - 4], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [ebp - 4]
movss dword [esp + 0x20], xmm0
sar eax, 2
push eax
push 0
push ebx
call fcn.004dfc40
add ebp, 0xfffffffc
add esp, 0x14
mov eax, ebp
and eax, 0xfffffffc
cmp eax, 8
jge 0x4e1750
pop edi
pop esi
pop ebp
pop ebx
ret
movss xmm2, dword [esi - 4]
lea eax, [esi - 4]
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4e17be
movss dword [ecx], xmm2
xorps xmm1, xmm1
movss xmm2, dword [eax - 4]
mov ecx, eax
sub eax, 4
cvtps2pd xmm0, xmm2
cvtss2sd xmm1, xmm3
comisd xmm1, xmm0
ja 0x4e17a0
movss dword [ecx], xmm3
add esi, 4
cmp esi, ebp
jne 0x4e1640
pop edi
pop esi
pop ebp
pop ebx
ret