Function at 0x1000ec60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
fldz
mov eax, 0x40
push ebx
mov ebx, dword [0x498d554]
push esi
fst qword [esp + 0x6c]
push edi
xor edi, edi
xor esi, esi
sub eax, dword [ebp + 8]
fst qword [esp + 0x68]
fstp qword [esp + 0x78]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], eax
lea esp, [esp]
mov eax, dword [ebp + 0x14]
test esi, esi
jne 0x1000ecaa
mov eax, dword [ebp + 0x10]
push 0
push eax
push ebx
call fcn.10034c80
mov ax, word [0x498d084]
xor ecx, ecx
mov ebx, dword [0x498d554]
add esp, 0xc
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
cmp cx, ax
jae 0x1000ede0
imul eax, esi, 0x1020
mov esi, dword [0x494aad0]
add eax, 0x49489f0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
sub eax, dword [ebp + 8]
mov dword [esp + 0x50], eax
jns 0x1000ed92
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov eax, ecx
mov ecx, dword [ebp + 0xc]
call fcn.10001c00
mov dword [esp + 0x4c], edx
mov ecx, eax
mov edx, dword [ebp + 0xc]
xor edi, edi
mov dword [esp + 0x48], ecx
test edx, edx
jle 0x1000ed7e
cmp ebx, 0x3ec
jne 0x1000ed51
cmp dword [0x494ab58], 0
je 0x1000ed51
mov eax, dword [0x494aad4]
sub eax, esi
cmp eax, 1
jl 0x1000ed51
movzx eax, byte [esi]
inc esi
mov dword [0x494aad0], esi
jmp 0x1000ed69
push ebx
call fcn.10033e00
mov ebx, dword [0x498d554]
add esp, 4
mov esi, dword [0x494aad0]
mov edx, dword [ebp + 0xc]
mov ecx, edi
add edi, 8
shl eax, cl
mov ecx, dword [esp + 0x48]
or ecx, eax
mov dword [esp + 0x48], ecx
cmp edi, edx
jl 0x1000ed28
mov eax, dword [esp + 0x50]
add eax, edx
mov dword [esp + 0x50], eax
js 0x1000ed07
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ecx, 0x40
sub ecx, eax
mov eax, edi
sub ecx, dword [ebp + 8]
call fcn.10001c00
mov ecx, dword [esp + 0x60]
call fcn.10001c50
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
inc edx
mov dword [esp + 0x54], edx
mov word [ecx], ax
add ecx, 2
movzx eax, word [0x498d084]
mov dword [esp + 0x58], ecx
cmp edx, eax
jl 0x1000ecf2
mov ax, word [0x498d084]
mov esi, dword [esp + 0x5c]
inc esi
mov dword [esp + 0x5c], esi
cmp esi, 2
jl 0x1000eca0
movzx ebx, ax
xor edi, edi
dec ebx
test ebx, ebx
jle 0x1000ee85
lea esp, [esp]
movzx eax, word [edi*2 + 0x4949a12]
mov esi, edi
movzx edx, word [edi*2 + 0x49489f0]
and esi, 1
sub edx, eax
mov ecx, edx
sar ecx, 0x1f
mov eax, ecx
xor eax, edx
sub eax, ecx
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
movzx eax, word [edi*2 + 0x49489f2]
movzx edx, word [edi*2 + 0x4949a10]
fadd qword [esp + esi*8 + 0x70]
sub edx, eax
mov ecx, edx
sar ecx, 0x1f
mov eax, ecx
fstp qword [esp + esi*8 + 0x70]
xor eax, edx
mov esi, edi
sub eax, ecx
not esi
mov dword [esp + 0x60], eax
and esi, 1
fild dword [esp + 0x60]
inc edi
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
fadd qword [esp + esi*8 + 0x70]
fstp qword [esp + esi*8 + 0x70]
cmp edi, ebx
jl 0x1000ee00
fld qword [esp + 0x78]
fld qword [esp + 0x70]
jmp 0x1000ee8b
fld qword [esp + 0x68]
fldz
fdivrp st(1)
sub esp, 8
fstp qword [esp]
call fcn.10007cf0
fmul qword [0x4880da0]
add esp, 8
pop edi
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret