Function at 0x46d15a
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, 0xb0
mov eax, dword [0x4ea00c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebx + 0x10]
lea eax, [ebp - 0x58]
push edi
push 0xa
mov dword [ebp - 0x64], esi
pop ecx
and dword [eax + 4], 0
and dword [eax], 0
lea eax, [eax + 8]
sub ecx, 1
jne 0x46d18d
xorps xmm0, xmm0
lea edi, [ebp - 0x50]
push 0x36
movsd qword [ebp - 0x88], xmm0
movsd qword [ebp - 0x90], xmm0
movsd qword [ebp - 0x80], xmm0
movsd qword [ebp - 0x98], xmm0
pop esi
lea eax, [esi - 0x24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
divsd xmm0, qword [0x4c9098]
mulsd xmm0, qword [0x4c9078]
movsd qword [ebp - 0x60], xmm0
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_cos]
fmul qword [0x4c9070]
movsd xmm0, qword [ebp - 0x60]
movsd qword [esp], xmm0
fstp qword [ebp - 0xa0]
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_sin]
fstp qword [ebp - 0x60]
movsd xmm0, qword [ebp - 0x60]
xorps xmm0, xmmword [0x4c9210]
addsd xmm0, xmm0
movsd qword [ebp - 0xa8], xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x4c9098]
mulsd xmm0, qword [0x4c9078]
movsd qword [ebp - 0x60], xmm0
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_cos]
movsd xmm0, qword [ebp - 0x60]
fstp qword [ebp - 0xb0]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_sin]
movsd xmm2, qword [ebp - 0xa0]
add esi, 0x48
movsd xmm3, qword [ebp - 0xa8]
movaps xmm4, xmm2
cvtpd2ps xmm0, xmm2
pop ecx
pop ecx
minsd xmm2, qword [ebp - 0x88]
movss dword [ebp - 0x6c], xmm0
movaps xmm5, xmm3
mov eax, dword [ebp - 0x6c]
maxsd xmm4, qword [ebp - 0x80]
minsd xmm5, qword [ebp - 0x90]
cvtpd2ps xmm0, xmm3
mov dword [edi - 8], eax
maxsd xmm3, qword [ebp - 0x98]
movss dword [ebp - 0x68], xmm0
movsd xmm0, qword [ebp - 0xb0]
mov ecx, dword [ebp - 0x68]
cvtpd2ps xmm0, xmm0
mov dword [edi - 4], ecx
fstp qword [ebp - 0x60]
movsd xmm1, qword [ebp - 0x60]
xorps xmm1, xmmword [0x4c9210]
movss dword [ebp - 0x74], xmm0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x74]
cvtsd2ss xmm0, xmm1
mov dword [edi], eax
movaps xmm1, xmm2
movsd qword [ebp - 0x80], xmm4
movss dword [ebp - 0x70], xmm0
movaps xmm0, xmm3
mov ecx, dword [ebp - 0x70]
mov dword [edi + 4], ecx
add edi, 0x10
movsd qword [ebp - 0x88], xmm1
movsd qword [ebp - 0x90], xmm5
movsd qword [ebp - 0x98], xmm0
cmp esi, 0x19e
jl 0x46d1c2
mov ecx, dword [ebx + 0xc]
subsd xmm4, xmm1
mov esi, dword [ebp - 0x64]
subsd xmm0, xmm5
mov eax, dword [ecx + 8]
sub eax, dword [ecx]
movd xmm6, dword [ecx + 4]
cvtdq2pd xmm6, xmm6
movd xmm2, eax
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 4]
cvtdq2pd xmm2, xmm2
movd xmm3, eax
xor eax, eax
cvtdq2pd xmm3, xmm3
divsd xmm2, xmm4
movd xmm4, dword [ecx]
divsd xmm3, xmm0
cvtdq2pd xmm4, xmm4
movss xmm0, dword [ebp + eax*8 - 0x58]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
movss dword [ebp + eax*8 - 0x58], xmm0
movss xmm0, dword [ebp + eax*8 - 0x54]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm5
mulsd xmm0, xmm3
addsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss dword [ebp + eax*8 - 0x54], xmm0
inc eax
cmp eax, 0xa
jl 0x46d367
push 0xa
lea eax, [ebp - 0x58]
push eax
push dword [esi]
call dword [sym.imp.gdiplus.dll_GdipAddPathLine2]
test eax, eax
je 0x46d3c0
mov dword [esi + 4], eax
mov ecx, esi
call fcn.0045280e
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004a439a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc