Function at 0x408d6c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
cmp dword [0x487108], 0
push ebx
push esi
push edi
mov edi, 0x487108
je 0x409218
fld qword [0x480908]
and dword [ebp - 0x14], 0
fld qword [0x4809d8]
jmp 0x408d9b
fxch st(1)
fld qword [0x480ae8]
fstp qword [ebp - 0x10]
fld qword [0x480a40]
fstp qword [ebp - 0x20]
fld qword [0x480958]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x28]
fcomp qword [ebp - 0x28]
fnstsw ax
test ah, 0x41
jne 0x408e21
fld qword [ebp - 0x28]
fmulp st(2)
fld qword [ebp - 0x20]
fmulp st(2)
fmulp st(1)
fmul qword [ebp - 0x28]
fld qword [ebp - 0x28]
fld qword [0x480920]
fmul st(1), st(0)
fld qword [ebp - 0x28]
faddp st(2)
fxch st(2)
faddp st(1)
fsub qword [ebp - 0x28]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x20]
fld qword [ebp - 0x28]
fld qword [0x480990]
fsub st(1), st(0)
fxch st(2)
faddp st(1)
fsub qword [0x480ac0]
fsub qword [ebp - 0x10]
faddp st(2)
fld qword [ebp - 0x28]
fmul qword [ebp - 0x20]
fsubp st(2)
fxch st(1)
fstp qword [ebp - 0x10]
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x20]
jmp 0x408e25
fstp st(1)
fstp st(0)
push 0x33a0
push 0
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
fld qword [0x4808e0]
mov ecx, dword [edi]
mov dl, byte [ecx]
fstp qword [ebp - 0x28]
fld qword [0x480a48]
mov byte [ebp - 1], dl
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x20]
fld qword [0x4809d8]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [0x480a58]
fadd qword [ebp - 0x28]
fadd qword [ebp - 0x28]
fld qword [0x480a18]
fadd st(1), st(0)
fxch st(1)
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fld qword [0x480a40]
fsub st(1), st(0)
fld qword [ebp - 0x28]
faddp st(2)
fld qword [ebp - 0x28]
fmul qword [0x480a38]
fsubp st(2)
fld qword [0x480948]
fsub st(2), st(0)
fld qword [ebp - 0x20]
fsubp st(3)
fld qword [ebp - 0x28]
faddp st(3)
fld qword [ebp - 0x20]
fsubp st(3)
fld qword [ebp - 0x20]
fsubp st(3)
fxch st(2)
fadd st(3)
fsub qword [ebp - 0x20]
fld qword [0x480a30]
fsub st(1), st(0)
fld qword [ebp - 0x20]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
fsub qword [0x480a28]
fadd qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul qword [0x4809b8]
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [ebp - 0x28]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fmul st(3)
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(2)
fmul qword [ebp - 0x20]
fsubp st(1)
fsub qword [0x480a00]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
faddp st(1)
fld qword [ebp - 0x28]
fmul qword [0x480a20]
faddp st(1)
mov esi, dword [ebp - 0x14]
sar esi, 2
and esi, 0x3f
fsub qword [ebp - 0x20]
lea esi, [esi + 0x4870c8]
fld qword [ebp - 0x20]
fld qword [0x480908]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fadd qword [ebp - 0x20]
mov dl, byte [esi]
fstp qword [ebp - 0x28]
fld qword [0x4808e0]
fstp qword [ebp - 0x28]
fld qword [0x480a48]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul st(7)
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [0x480a58]
fadd qword [ebp - 0x28]
fadd qword [ebp - 0x28]
fadd st(5)
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsubrp st(3)
fld qword [ebp - 0x28]
faddp st(3)
fld qword [ebp - 0x28]
fmul qword [0x480a38]
fsubp st(3)
fxch st(2)
fsub st(3)
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd st(4)
fsub qword [ebp - 0x20]
fsub st(1)
fadd qword [ebp - 0x20]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
fsub qword [0x480a28]
fadd qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul qword [0x4809b8]
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [ebp - 0x28]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fmul st(3)
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(2)
fmul qword [ebp - 0x20]
fsubp st(1)
fsub qword [0x480a00]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
faddp st(1)
fld qword [ebp - 0x28]
fmul qword [0x480a20]
faddp st(1)
fsub qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(3)
faddp st(1)
fadd qword [ebp - 0x20]
xor dl, byte [ebp - 1]
mov byte [eax], dl
fstp qword [ebp - 0x28]
je 0x4091fc
mov dword [ebp - 0xc], eax
sub dword [ebp - 0xc], ecx
fld qword [0x4808e0]
inc ecx
mov dl, byte [ecx]
fstp qword [ebp - 0x28]
fld qword [0x480a48]
mov byte [ebp - 1], dl
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul st(6)
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [0x480a58]
fadd qword [ebp - 0x28]
fadd qword [ebp - 0x28]
fadd st(4)
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [0x480a40]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [0x480a38]
fsubp st(1)
fsub st(3)
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd st(4)
fsub qword [ebp - 0x20]
fsub st(1)
fadd qword [ebp - 0x20]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
fsub qword [0x480a28]
fadd qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul qword [0x4809b8]
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [ebp - 0x28]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fmul st(3)
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(2)
fmul qword [ebp - 0x20]
fsubp st(1)
fsub qword [0x480a00]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
faddp st(1)
fld qword [ebp - 0x28]
fmul qword [0x480a20]
faddp st(1)
fsub qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(3)
faddp st(1)
fadd qword [ebp - 0x20]
mov dl, byte [esi]
fstp qword [ebp - 0x28]
fld qword [0x4808e0]
fstp qword [ebp - 0x28]
fld qword [0x480a48]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul st(6)
faddp st(1)
xor dl, byte [ebp - 1]
mov ebx, dword [ebp - 0xc]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [0x480a58]
fadd qword [ebp - 0x28]
fadd qword [ebp - 0x28]
fadd st(4)
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fsub qword [0x480a40]
fadd qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [0x480a38]
fsubp st(1)
fsub st(3)
fsub qword [ebp - 0x20]
fadd qword [ebp - 0x28]
fsub qword [ebp - 0x20]
fsub qword [ebp - 0x20]
fadd st(4)
fsub qword [ebp - 0x20]
fsub st(1)
fadd qword [ebp - 0x20]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
fsub qword [0x480a28]
fadd qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul qword [0x4809b8]
faddp st(1)
fstp qword [ebp - 0x28]
fld qword [ebp - 0x28]
fmul qword [ebp - 0x28]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x28]
fmul st(3)
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x28]
fld qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(2)
fmul qword [ebp - 0x20]
fsubp st(1)
fsub qword [0x480a00]
fld qword [ebp - 0x20]
fmul qword [ebp - 0x28]
faddp st(1)
fld qword [ebp - 0x28]
fmul qword [0x480a20]
faddp st(1)
fsub qword [ebp - 0x20]
fld qword [ebp - 0x20]
fmul st(3)
faddp st(1)
fadd qword [ebp - 0x20]
mov byte [ebx + ecx], dl
fstp qword [ebp - 0x28]
jne 0x40903b
add dword [ebp - 0x14], 4
fstp st(3)
mov dword [edi], eax
fstp st(1)
add edi, 4
fstp st(1)
cmp dword [edi], 0
jne 0x408d99
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebx
leave
ret