Function at 0x407ef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xffffffc0
cmp dword [ebp + 0x10], 0xffffffd5
jl 0x407f03
add eax, dword [ecx]
sbb ecx, dword [esi]
add byte [eax], al
fld qword [ebp + 8]
fcomp qword [0x40a730]
mov ecx, dword [ebp + 0x18]
mov ebx, dword gs:[ebp - 6]
xor byte [edi + 0x4d8b0040], ah
sbb byte [ebp - 0x75], ah
pop ebp
cli
push esi
xor esi, esi
push edi
cmp eax, 0xfc7589bb
mov dword [ecx], esi
idiv byte [ebx + 5]
mov edi, dword [edi + 0x7a]
push cs
fucom st(1)
or cl, bl
loopne 0x407f08
pop ebp
cld
mov dword [ecx], 1
add byte [eax], al
mov esi, dword [edx + 0xc]
mov edx, dword [ebp + 8]
xchg ebp, eax
inc ebp
in al, dx
push eax
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_modf]
fistp dword [ebp + 8]
fld qword [ebp - 0x14]
rcr dword [0x40c2c3], 0x4b
or al, 0xdf
loopne 0x407f4d
ret
inc edx
inc esp
inc edi
mov byte [0x3b50735b], al
jbe 0x407fba
fld qword [ebp - 0x14]
rcr byte [0x40c230], 0xdf
loopne 0x407fe5
les eax, [ebx + edi*2 + 0x48]
fld qword [ebp - 0x14]
ja 0x407f31
adc bl, al
sub byte [eax], al
lea eax, [ebp - 0x14]
jb 0x407f03
in al, dx
pop edi
fstp qword [esp]
call dword [0xb2c118]
fstp qword [ebp - 0xc]
retf
lea eax, [ebp + 0x73c63b50]
sub eax, 0x17f81644
inc edi
inc esi
cmp edi, dword [eax + 0x72]
imul bl
push eax
fnstsw word [edx + 0x52]
fcomp qword [0x4740c230]
fnstsw ax
cld
add byte [ecx], al
add byte [ebp - 9], dh
fld qword [ebp + 8]
fmul qword [0x40c2f8]
fst qword [ebp - 0xc]
fld st(0)
jne 0x40800c
ret 0x40
inc eax
add ch, bl
push ebp
hlt
sal byte [ebp + 0x1d], 0x28
ret 0x40
sub dl, al
inc eax
add bh, bl
loopne 0x407fec
jecxz 0x407ffd
jp 0x40801b
fst qword [ebp + 8]
or byte [0xc640c25a], 0x4e
sbb esp, dword [eax]
fcomp qword [0x40c228]
and ah, bl
sbb eax, 0x40c228
outsd dx, dword [esi]
loopne 0x408005
pop ebx
add eax, 0x5daee729
jb 0x407fe6
jne 0x408015
jmp 0x40801d
pop eax
fmul dword [ebx + 0x348d1045]
sbb byte [ebx - 0x3f2de3a5], cl
mov eax, dword [ebp + 0x10]
lea esi, [eax + ebx]
mov ebx, dword [ebx + 0x1c]
rol al, cl
sbb al, 0xd2
sar ah, 3
add esi, dword [ebp - 4]
cld
add eax, dword [ebx]
jne 0x408029
mov ecx, dword [ebp + 0x14]
loope 0x408025
jae 0x408047
int1
or byte [eax], dl
pop edi
neg eax
mov dword [ecx], eax
mov byte [ebx], 0
mov edx, ebx
pop esi
push 0xc30d648b
jno 0x40809e
cld
cmp edi, esi
mov dword [edi + esi*2 + 0x845dd4c], esi
lea ebx, [eax + edx*2 + 0x3073e03b]
fmul qword [0xf4c2f8]
lea eax, [ebp - 0xc]
push eax
sub esp, 8
fstp qword [esp]
call dword [0x7fc118]
fld qword [ebp - 0xc]
sbb dword [eax + 0xc], 0xffffffe8
add eax, 0x8bd8000c
dec ebp
adc al, 0x8b
cdq
and byte [eax + esi], al
mov byte [edi], al
inc edi
cmp edi, esi
jbe 0x408053
fstp st(0)
pop edx
push ebx
push eax
cmp esi, edx
jb 0x4080a0
pop edi
mov byte [ebx + 0x4f], 0
adc al, 0xc3
pop esi
test dword [eax - 0x623ca21b], ebp
pop ebp
ret
popfd
push ss
mov eax, esi
add dl, 0xba
wait
cli
cmp dword [eax - 0x37d765ea], ecx
push ebp
sbb al, 0x3b
sbb al, 6
int 0x76
add eax, 0xeb06fe4e
adc al, 0xc6
push es
xor dword [ecx + 0x39], edi
inc edi
test edx, edx
mov dword [eax - 0x3cc4f78b], ecx
jbe 0x4080d0
mov byte [eax], 0x30
inc eax
cmp byte [esi], 0x28
pop ecx
fcmovnb st(0), st(6)
add byte [eax], al
add ecx, dword [ebx - 0x74a4a13d]
in eax, 0xfa
ret