Function at 0x4017f2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0xbd0808
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x1345914]
xor eax, esp
mov dword [esp + 5], eax
push ebx
push esi
push edi
add byte [ecx + ebx*2], dl
xor al, 1
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
lea eax, [esp + 0x30]
push eax
mov esi, ecx
call 0x68d212
mov ecx, dword [eax + 4]
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], ecx
push edx
mov ecx, esi
call 0x68d212
fild dword [esp + 0x2c]
fst dword [ebp - 0x30]
pop edi
xor al, 0
mov eax, dword [eax]
fld st(0)
mov dword [esp + 0x14], eax
fmulp st(2)
fxch st(1)
call 0xbce9d2
fimul dword [esp + 0x14]
push eax
call 0xbce9d2
push eax
mov ecx, esi
call 0x69bc32
mov ebx, dword [esi + 0x14]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [eax + edx*2 + 0x14]
fld dword [0x1345f00]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
mov edx, dword [edi + 0x18]
sub edx, dword [edi + 0x10]
push eax
inc edx
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ebx, dword [esi + 0x18]
mov edi, dword [ebx + 0x10]
mov eax, dword [edi + 0x1c]
sub eax, dword [edi + 0x14]
jecxz 0x40184f
inc esp
and al, 0
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
mov ecx, dword [edi + 0x18]
sub ecx, dword [edi + 0x10]
push eax
inc ecx
mov dword [esp + 0x18], ecx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ebx, dword [esi + 0x60]
mov edi, dword [ebx + 0x10]
xchg ecx, eax
push edi
sbb al, 0x2b
add byte [edx + eax*2], dl
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
push eax
mov eax, dword [edi + 0x18]
sub eax, dword [edi + 0x10]
inc eax
mov dword [esp + 0x18], eax
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ebx, dword [edx]
pop eax
mov edi, dword [ebx]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
mov edx, dword [edi + 0x18]
sub edx, dword [edi + 0x10]
push eax
inc edx
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x697232
mov eax, dword [eax]
pop eax
call 0x68ffb2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x58]
mov edi, eax
call 0x68ff72
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x58]
mov dword [eax + ebx*4 + 0x14], eax
lea eax, [eax + eax + 0x14]
push eax
mov dword [esp + 0x1c], edi
call 0x698992
mov ebx, dword [esi + 0x54]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
mov edx, dword [edi + 0x18]
sub edx, dword [edi + 0x10]
push eax
inc edx
mov dword [esp - 0x80], edx
fimul dword [esp]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ecx, dword [esi + 0x54]
call 0x68ffb2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x54]
mov edi, eax
call 0x68ff72
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x134efd0]
call 0xbce949
mov ecx, dword [esi + 0x54]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x1c], edi
call 0x698992
mov ebx, dword [esi + 0x38]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
fxch st(1)
call 0xbce9d2
pop es
push edi
sbb byte [ebx], ch
add byte [eax], dl
push eax
inc edx
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ecx, dword [esi + 0x38]
call 0x68ffb2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x38]
mov edi, eax
call 0x68ff72
mov dword [ebx + edx + 0x14], eax
fild dword [eax + eax + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x1c], edi
call 0x698992
mov ebx, dword [esi + 0x40]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
fmulp st(2)
in eax, 0xc9
call 0xbc1bd2
mov edx, dword [edi + 0x18]
sub edx, dword [edi + 0x10]
push eax
inc edx
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ecx, dword [esi + 0x40]
call 0x68ffb2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x40]
mov edi, eax
call 0x68bf72
mov dword [eax], eax
and al, 0x14
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x1c], edi
call 0x698992
mov ebx, dword [esi + 0x24]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fstp dword [edi + 0xd9cade]
call 0xbce9d2
mov edx, dword [edi + 0x18]
sub edx, dword [edi + 0x10]
push eax
inc edx
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call 0xbce9d2
push eax
mov ecx, ebx
call 0x69bc32
mov ecx, dword [esi + 0x24]
call 0x68ffb2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x24]
mov edi, eax
call 0x68ff9c
add byte [esp + 0x14], al
fild dword [esp + 0x14]
fmul dword [0x1345fd0]
call 0xbce9d2
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x1c], edi
call 0x698992
mov ebx, dword [esi + 0x4c]
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + 0x1c]
sub ecx, dword [edi + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld dword [0x1345fd0]
fld st(0)
xchg ebx, eax
retf 0xc9d9