Function at 0x4af4fc
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 0x4af568
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af575
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 0x4af5a4
xorps xmm2, xmm3
mov eax, dword [ebp + 8]
movss dword [eax], xmm2
cmp esi, 0x1d
jae 0x4af5de
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af5eb
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 0x4af612
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 0x4af684
cmp esi, 8
jae 0x4af657
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af660
movzx eax, bl
shr ebx, 8
sub esi, 8
cmp eax, 0x5f
jbe 0x4af66a
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 0x4af624
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 0x4af6cd
xor eax, eax
jmp 0x4af69c
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 0x4af69c
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 0x4af964
jmp 0x4af6ec
test esi, esi
jne 0x4af706
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af75d
cmp esi, 4
jae 0x4af740
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af74b
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 0x4af763
add ecx, 8
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x14], eax
jbe 0x4af76e
mov dword [ebp - 0x14], eax
cmp esi, 4
jae 0x4af79f
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af7aa
mov eax, ebx
and eax, 0xf
shr ebx, 4
sub esi, 4
test eax, eax
jne 0x4af839
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.004990ac
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 0x4af980
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 0x4af7fc
movss xmm4, dword [0x1003bd58]
jmp 0x4af958
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 8], ecx
jae 0x4af958
mov ecx, dword [ebp + 0x18]
lea edx, [ebp - 0x90]
sub ecx, edx
mov dword [ebp - 0x24], ecx
jmp 0x4af862
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 0x4af896
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 0x4af8d4
cmp edi, dword [ebp + 0x1c]
jae 0x4af96b
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 0x4af8e8
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 0x4af938
test esi, esi
jne 0x4af906
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 0x4af90b
mov ecx, ebx
shr ebx, 1
dec esi
test cl, 1
je 0x4af924
mov ecx, dword [ebp - 0x10]
movaps xmm2, xmm0
cvtsi2ss xmm5, edi
mulss xmm5, xmm2
movss dword [ecx], xmm5
jmp 0x4af93f
mov ecx, dword [ebp - 0x10]
movaps xmm2, xmm1
cvtsi2ss xmm5, edi
mulss xmm5, xmm2
movss dword [ecx], xmm5
jmp 0x4af93f
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 0x4af85c
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 0xc]
jb 0x4af6ec
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 0x4af958