Function at 0x4f8bcc
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
push esi
push edi
xor edi, edi
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
test edx, edx
je 0x4f8bfd
mov eax, dword [edx + 0x14]
jmp 0x4f8bff
mov eax, edi
mov dword [ebp - 0x38], eax
imul eax, dword [ebx + 8]
imul eax, dword [ebx + 0xc]
mov dword [ebp - 0xc], eax
call fcn.004f703f
push edi
push eax
call fcn.00724770
mov esi, dword [ebp - 0x14]
pop ecx
pop ecx
test eax, eax
jne 0x4f8eb3
mov eax, dword [esi + 0x20]
cmp dword [eax + 0x40], edi
jne 0x4f8eb3
mov edx, dword [ebp - 0xc]
mov ecx, esi
shl edx, 2
call fcn.00522007
movss xmm3, dword [0xed0a24]
mov edi, eax
movss xmm1, dword [0xed0b10]
xorps xmm4, xmm4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x20], edi
movss dword [ebp - 8], xmm4
movss dword [ebp - 0x18], xmm3
movss dword [ebp - 4], xmm1
mov dword [ebp - 0x2c], ecx
test eax, eax
jle 0x4f8ced
mov esi, ecx
mov dword [ebp - 0x24], eax
sub esi, edi
movss xmm0, dword [edi + esi]
ucomiss xmm0, dword [0xe7d6f8]
lahf
test ah, 0x44
jp 0x4f8c94
movss xmm0, dword [0xed02b0]
cvtps2pd xmm0, xmm0
call fcn.00725ef0
movss xmm3, dword [ebp - 0x18]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
comiss xmm2, xmm3
movaps xmm0, xmm2
movss dword [edi], xmm2
addss xmm0, dword [ebp - 8]
movaps xmm4, xmm0
movss dword [ebp - 8], xmm0
ja 0x4f8cc9
movaps xmm3, xmm2
movss dword [ebp - 0x18], xmm3
movss xmm1, dword [ebp - 4]
comiss xmm1, xmm2
ja 0x4f8cdb
movaps xmm1, xmm2
movss dword [ebp - 4], xmm1
add edi, 4
sub dword [ebp - 0x24], 1
jne 0x4f8c7a
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
movd xmm0, eax
subss xmm1, xmm3
cvtdq2ps xmm0, xmm0
movss dword [ebp - 4], xmm1
divss xmm4, xmm0
movsd xmm0, qword [0xed0788]
movss dword [ebp - 8], xmm4
call fcn.00725ef0
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x18], xmm0
movsd xmm0, qword [0xed0540]
call fcn.00725ef0
movss xmm2, dword [ebp - 0x18]
movss xmm1, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
mov eax, dword [ebp - 0xc]
subss xmm2, xmm0
divss xmm2, xmm1
divss xmm1, dword [0xed0718]
movss dword [ebp - 0x18], xmm2
mulss xmm1, xmm1
addss xmm1, xmm1
movss dword [ebp - 4], xmm1
test eax, eax
jle 0x4f8dee
movss xmm0, dword [0xed0468]
mov esi, dword [ebx + 0x10]
subss xmm0, xmm2
sub edi, esi
mov dword [ebp - 0x24], eax
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [esi]
subss xmm0, dword [ebp - 8]
mulss xmm0, xmm0
xorps xmm0, xmmword [0xed14b0]
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
call fcn.00725950
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [edi + esi]
mulss xmm1, dword [ebp - 0x30]
subss xmm0, dword [ebp - 8]
addss xmm1, dword [ebp - 0x18]
mulss xmm1, dword [0xed03c0]
mulss xmm1, xmm0
addss xmm1, dword [ebp - 8]
cvtps2pd xmm0, xmm1
call fcn.00725950
movss xmm1, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [ebp - 0x24], 1
jne 0x4f8d7d
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x28]
mov edx, eax
push ecx
lea ecx, [ebp - 0x10]
push ecx
push dword [ebx + 0x10]
mov ecx, esi
call fcn.004f8a40
movss xmm0, dword [ebp - 0x28]
add esp, 0xc
subss xmm0, dword [ebp - 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, esi
mov edx, dword [ebp - 0x34]
push 0
push 0
push eax
push dword [ebx + 8]
movss dword [ebp - 0x30], xmm0
mov dword [ebp - 0x24], eax
call fcn.004f7d1a
mov edi, eax
add esp, 0x10
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1c], edi
lea ecx, [eax - 1]
imul ecx, dword [edi + 0x1c]
add ecx, dword [edi + 0x30]
test eax, eax
jle 0x4f8eb6
mov edx, dword [ebp - 0x38]
imul edx, dword [ebx + 8]
movss xmm1, dword [ebp - 0x30]
and dword [ebp - 0x18], 0
test edx, edx
jle 0x4f8ea3
mov edi, dword [ebp - 0x2c]
movss xmm0, dword [edi]
comiss xmm0, dword [ebp - 0x10]
jbe 0x4f8e6d
minss xmm0, dword [ebp - 0x28]
jmp 0x4f8e72
movss xmm0, dword [ebp - 0x10]
subss xmm0, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
add edi, 4
mulss xmm0, dword [0xed0978]
divss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [ecx + esi], al
mov eax, esi
inc eax
mov dword [ebp - 0x18], eax
cmp eax, edx
jl 0x4f8e5c
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x1c]
sub ecx, dword [edi + 0x1c]
sub eax, 1
mov dword [ebp - 0x24], eax
jne 0x4f8e51
mov esi, dword [ebp - 0x14]
jmp 0x4f8eb6
mov edi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.004f70be
test eax, eax
je 0x4f8ecc
push dword [ebp - 0x20]
push esi
call fcn.0052213a
pop ecx
pop ecx
mov ecx, esi
call fcn.004f70d4
test eax, eax
jne 0x4f8ee2
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edx, edi
mov ecx, esi
call fcn.004f7b13
mov ecx, esi
call fcn.004f7175
int3