Function at 0x4e3d6c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
mov eax, dword [ebp + 0x14]
movss xmm4, dword [0x1003bd58]
push ebx
mov ebx, dword [eax]
push esi
mov esi, dword [eax + 8]
push edi
mov edi, dword [eax + 4]
movaps xmm1, xmm4
movaps xmm0, xmm4
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], edi
cmp esi, 0x1d
jae 0x4e3dd8
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, esi
mov eax, edx
shl eax, cl
mov ecx, 0x1d
sub ecx, esi
shr edx, cl
or eax, ebx
and eax, 0x1fffffff
add esi, 3
add edi, 4
mov ebx, edx
mov dword [ebp - 4], edi
jmp 0x4e3de5
mov eax, ebx
and eax, 0x1fffffff
shr ebx, 0x1d
sub esi, 0x1d
movss xmm3, dword [0x10031300]
mov ecx, eax
shr ecx, 5
and ecx, 0x77fffff
mov edx, eax
and edx, 0x1f
cvtsi2ss xmm2, ecx
mulss xmm2, dword [edx*4 + 0x1003fc70]
test eax, 0x10000000
je 0x4e3e14
xorps xmm2, xmm3
mov eax, dword [ebp + 8]
movss dword [eax], xmm2
cmp esi, 0x1d
jae 0x4e3e4e
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, esi
mov eax, edx
shl eax, cl
mov ecx, 0x1d
sub ecx, esi
shr edx, cl
or eax, ebx
and eax, 0x1fffffff
add esi, 3
add edi, 4
mov ebx, edx
mov dword [ebp - 4], edi
jmp 0x4e3e5b
mov eax, ebx
and eax, 0x1fffffff
shr ebx, 0x1d
sub esi, 0x1d
mov ecx, eax
shr ecx, 5
and ecx, 0x77fffff
mov edx, eax
and edx, 0x1f
cvtsi2ss xmm2, ecx
mulss xmm2, dword [edx*4 + 0x1003fc70]
test eax, 0x10000000
je 0x4e3e82
xorps xmm2, xmm3
mov eax, dword [ebp + 8]
xor ecx, ecx
movss dword [eax + 4], xmm2
mov dword [ebp - 8], ecx
cmp dword [ebp + 0x10], ecx
jbe 0x4e3ef4
cmp esi, 8
jae 0x4e3ec7
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, esi
mov eax, edx
shl eax, cl
mov ecx, 8
sub ecx, esi
shr edx, cl
mov ecx, dword [ebp - 8]
or eax, ebx
and eax, 0xff
add esi, 0x18
mov ebx, edx
add edi, 4
jmp 0x4e3ed0
movzx eax, bl
shr ebx, 8
sub esi, 8
cmp eax, 0x5f
jbe 0x4e3eda
mov eax, 0x5f
fld dword [eax*4 + 0x1003faf0]
inc ecx
fstp dword [ebp + ecx*4 - 0x94]
mov dword [ebp - 8], ecx
cmp ecx, dword [ebp + 0x10]
jb 0x4e3e94
mov dword [ebp - 4], edi
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
xor ecx, ecx
add eax, eax
mov dword [ebp - 0xc], ecx
cmp eax, 2
jae 0x4e3f3d
xor eax, eax
jmp 0x4e3f0c
movss xmm1, dword [ebp + eax - 0x90]
mov edx, dword [ebp + 0x18]
inc ecx
lea eax, [ecx*4]
mov edx, dword [eax + edx]
add edx, edx
movaps xmm0, xmm1
xorps xmm0, xmm3
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
cmp edx, 2
jb 0x4e3f0c
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov ecx, 2
add eax, 8
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], ecx
cmp dword [ebp + 0xc], ecx
jbe 0x4e41d4
jmp 0x4e3f5c
test esi, esi
jne 0x4e3f76
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov ebx, dword [edi]
add edi, 4
mov dword [ebp - 4], edi
mov esi, 0x20
mov eax, ebx
dec esi
shr ebx, 1
test al, 1
je 0x4e3fcd
cmp esi, 4
jae 0x4e3fb0
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, esi
mov eax, edx
shl eax, cl
mov ecx, 4
sub ecx, esi
shr edx, cl
or eax, ebx
and eax, 0xf
add esi, 0x1c
add edi, 4
mov ebx, edx
mov dword [ebp - 4], edi
jmp 0x4e3fbb
mov eax, ebx
and eax, 0xf
shr ebx, 4
sub esi, 4
movzx ecx, byte [eax + 0x1003fa78]
mov edx, dword [ebp - 8]
lea eax, [edx + ecx*8]
mov dword [ebp - 0x14], eax
jmp 0x4e3fd3
add ecx, 8
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x14], eax
jbe 0x4e3fde
mov dword [ebp - 0x14], eax
cmp esi, 4
jae 0x4e400f
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, esi
mov eax, edx
shl eax, cl
mov ecx, 4
sub ecx, esi
shr edx, cl
or eax, ebx
and eax, 0xf
add esi, 0x1c
add edi, 4
mov ebx, edx
mov dword [ebp - 4], edi
jmp 0x4e401a
mov eax, ebx
and eax, 0xf
shr ebx, 4
sub esi, 4
test eax, eax
jne 0x4e40a9
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add eax, eax
add eax, eax
push eax
push 0
push ecx
mov dword [ebp - 8], eax
call fcn.004cd91c
mov edx, dword [ebp - 8]
add dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
movss xmm3, dword [0x10031300]
add eax, eax
add eax, eax
mov edx, dword [eax + edx]
add edx, edx
add esp, 0xc
mov dword [ebp - 8], ecx
cmp ecx, edx
jbe 0x4e41f0
lea ecx, [ecx]
movss xmm1, dword [ebp + eax - 0x90]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0xc], eax
add eax, eax
add eax, eax
mov edx, dword [eax + edx]
add edx, edx
movaps xmm0, xmm1
xorps xmm0, xmm3
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
cmp ecx, edx
ja 0x4e406c
movss xmm4, dword [0x1003bd58]
jmp 0x4e41c8
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 8], ecx
jae 0x4e41c8
mov ecx, dword [ebp + 0x18]
lea edx, [ebp - 0x90]
sub ecx, edx
mov dword [ebp - 0x24], ecx
jmp 0x4e40d2
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xc]
lea ecx, [ecx + edx*4]
mov edx, dword [ebp + ecx - 0x90]
add edx, edx
cmp dword [ebp - 8], edx
jne 0x4e4106
mov ecx, dword [ebp - 0xc]
movss xmm1, dword [ebp + ecx*4 - 0x90]
movaps xmm0, xmm1
inc ecx
xorps xmm0, xmm3
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
mov dword [ebp - 0xc], ecx
cmp esi, eax
jae 0x4e4144
cmp edi, dword [ebp + 0x1c]
jae 0x4e41db
mov edx, dword [edi]
mov ecx, 0x20
sub ecx, eax
or edi, 0xffffffff
shr edi, cl
mov ecx, esi
mov dword [ebp - 0x28], edx
shl edx, cl
mov ecx, eax
sub ecx, esi
or edx, ebx
mov ebx, dword [ebp - 0x28]
shr ebx, cl
mov ecx, 0x20
sub ecx, eax
and edi, edx
add esi, ecx
add dword [ebp - 4], 4
jmp 0x4e4158
mov ecx, 0x20
sub ecx, eax
or edi, 0xffffffff
shr edi, cl
mov ecx, eax
and edi, ebx
shr ebx, cl
sub esi, eax
test edi, edi
je 0x4e41a8
test esi, esi
jne 0x4e4176
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
add edx, 4
mov ebx, ecx
mov dword [ebp - 4], edx
shr ebx, 1
mov esi, 0x1f
jmp 0x4e417b
mov ecx, ebx
shr ebx, 1
dec esi
test cl, 1
je 0x4e4194
mov ecx, dword [ebp - 0x10]
movaps xmm2, xmm0
cvtsi2ss xmm5, edi
mulss xmm5, xmm2
movss dword [ecx], xmm5
jmp 0x4e41af
mov ecx, dword [ebp - 0x10]
movaps xmm2, xmm1
cvtsi2ss xmm5, edi
mulss xmm5, xmm2
movss dword [ecx], xmm5
jmp 0x4e41af
mov ecx, dword [ebp - 0x10]
movss dword [ecx], xmm4
add ecx, 4
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, dword [ebp - 0x14]
jb 0x4e40cc
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 0xc]
jb 0x4e3f5c
mov dword [ebp - 0x20], 1
mov eax, dword [ebp + 0x14]
mov dword [eax + 4], edi
pop edi
mov dword [eax + 8], esi
mov dword [eax], ebx
mov eax, dword [ebp - 0x20]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c]
movss xmm4, dword [0x1003bd58]
jmp 0x4e41c8