Function at 0xf00294
Capabilities:
Encode data using xor

Disassembly:
mov dword [ebx], edx
inc ebx
fcompi st(7)
mov bh, 0x57
fldpi
and al, 0x70
push es
lahf
xchg byte [0x3d8a892c], dh
inc edi
pop eax
in al, 1
lodsb al, byte [esi]
inc eax
pop ebp
adc eax, 0xca87b451
add dword [eax + eax*2 - 0x4baeeaa3], ebp
xchg edx, ecx
pop edx
jae 0xf00261
add dword [edi + 0x6f], esp
fimul dword [0xbf965b61]
pop ebp
das
mov ebp, 0xeb005c10
jmp 0xf0029e
add byte [esp + ecx], bl
add byte [eax], al
add byte [eax], al
add byte [eax - 0x18], ah
add byte [eax], al
add byte [eax], al
jmp 0xf0029e
pushal
call 0xf002a4
pop ebp
sub ebp, 0x10
sub ebp, 0xb00294
jmp 0xf002ba
mov eax, 0xb00294
add eax, ebp
add eax, 0x4c
mov ecx, 0x5cf
mov edx, 0x1d58cb88
xor byte [eax], dl
inc eax
dec ecx
jne 0xf002d1
jmp 0xf002e4
add eax, dword [ebp + 3]
add dword [eax + ecx*4 + 0x49098888], esi
jo 0xf00278
mov byte [eax - 0x71cfba75], cl
mov byte [eax - 0x775fcd78], cl
mov byte [eax + 0x408b6a7f], cl
add ecx, dword [ecx]
test byte [eax + 0x4d8b8888], cl
fadd dword [0x174acec]
mov word [eax - 0x7756bbd8], gs
loopne 0xf00394
lodsb al, byte [esi]
loopne 0xf0033c
inc esp
test eax, 0xbd7be088
push es
mov byte [ecx - 0xf1f535c], cl
mov ebp, 0xa4898806
lodsb al, byte [esi]
loopne 0xf00311
outsb dx, byte [esi]
cwde
aam 0x60
lea ecx, [eax - 0x599e7778]
mov byte [eax - 0x2a232278], cl
add ecx, dword [0x88888880]
add ebx, dword [0x88888884]
add eax, dword [0x88888898]
mov byte [ebx], al
add eax, 0x88888898
dec ecx
popal
mov bh, byte [ecx - 0x73b5f476]
rol dword [edi + 0x77777c0d], 0x77
add esp, dword [esp + ebp*4 - 0x735313fb]
dec edx
test byte [eax - 0x7353fbfd], cl
mov byte [eax + 0x4428e088], cl
test eax, 0xbd7be088
push es
mov byte [ecx + 0x60d9aca4], cl
lea ecx, [eax - 0x309e7778]
mov cl, byte [eax - 0x1bfa2278]
lodsb al, byte [esi]
mov byte [eax - 0x531bfa23], cl
mov ch, bl
add eax, 0x7788ace4
std
mov byte [edi - 3], dh
test byte [edi - 3], dh
and byte [eax - 0x10], 0x88
mov byte [eax - 0x777fcafd], cl
mov byte [eax + 0x12e67909], cl
sub dword [edi + 0x12e67909], edi
adc ch, byte [ecx]
mov edi, 0x12e67909
sub dword [edi + 0x5abb41bb], edi
or esp, dword [eax - 0x73]
rol byte [edi - 0x777739f4], 0x88
xchg dword [eax], eax
ror byte [eax + 0x3ee8888], 0x94
mov cl, 8
jae 0xf00418
xchg dword [edx + edx*4], ecx
mov byte [eax + 0x61730888], cl
xchg dword [ecx + ebx*4], ecx
mov byte [eax + 0x7309ee88], cl
ja 0xf00379
mov byte [eax + 0x777309ee], cl
lodsd eax, dword [esi]
xchg dword [ebx*4 - 0x36777778], ecx
popal
inc esp
ja 0xf0044e
ja 0xf0037a
les esi, [ecx - 0x72b6f477]
or esp, dword [eax - 0x74]
popal
xor eax, 0xa1777777
fdiv qword [ecx - 0x71b6f476]
or esp, dword [edx - 0x74]
or esp, dword [eax - 0x73]
popal
and esi, dword [edi + 0x77]
ja 0xf003fd
movsb byte es:[edi], byte [esi]
lodsb al, byte [esi]
add eax, 0x4a8cacec
test byte [eax - 0x219bfc23], cl
invalid
in al, dx
lodsb al, byte [esi]
mov word [edx - 0x7c], cs
mov ch, bl
add esp, dword [esi + ebx*8 - 0x21]
fld qword [ebx]
std
test byte [ebx], al
cmc
xor byte [edx + edi + 8], 2
mov cs, word [ecx]
dec esi
mov dword [eax - 0x70ff7778], ecx
or dword [edi - 0x77], ecx
mov byte [eax - 0x7775cc78], cl
mov byte [eax + 0xd875a8a], cl
lea ecx, [eax - 0x61fd7778]
into
lcall 0x7777, 0x500b875a
ja 0xf003c5
mov byte [eax + 0x4f098f00], cl
mov dword [eax - 0x75cc7778], ecx
mov byte [eax - 0x78a57578], cl
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or edx, dword [eax + 0x77]
ja 0xf004b1
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x78a56532]
or esp, edx
mov byte [eax - 0x75b74478], cl
pop edx
xchg dword [0x8888888d], ecx
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or esp, dword [edx - 0x75777777]
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
xchg dword [esi + ecx*4], ecx
mov byte [eax - 0x5ca8fc78], cl
push eax
add cl, byte [ebx + 0x33cf8f00]
mov cl, byte [eax - 0x79e7778]
mov byte [ecx - 8], ah
ja 0xf0052d
ja 0xf004e8
mov dword [eax + 0x5a8a8888], ecx
xchg dword [0x8888888d], ecx
mov byte [eax - 0x78a57578], cl
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0xf00555
push esi
ja 0xf00554
ja 0xf00482
mov dword [0x8889334b], eax
mov byte [eax - 0x7743f279], cl
mov byte [eax - 0x777776cf], cl
mov byte [edx - 0x72f278a6], cl
mov byte [eax - 0x3161fd78], cl
dec ebx
xor ecx, dword [ecx - 0x78777778]
or eax, 0x888888bc
xor dword [ecx - 0x75777778], ecx
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
inc ecx
mov bl, byte [edx - 0x79]
mov byte [eax - 0x7776ce78], cl
mov byte [eax + 0xd875a8a], cl
lea ecx, [eax - 0x61fd7778]
into
lcall 0x875a, 0x8a419b5a
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0xf00589
fiadd word [ebx]
jg 0xf004b9
jge 0xf00593
sub al, 0xd6
popal
xor byte [edi + 0x77], 0x77
ror byte [ecx + 0x68], 0x80
add cl, byte [esi + 0x316003ce]
add esp, dword [eax + 0x31]
mov dword [eax + 0x5a8a8888], ecx
xchg dword [0x8888888d], ecx
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
inc ecx
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0xf005c6
xchg dword [edx], ecx
push esi
ja 0xf005c5
ja 0xf00559
or dword [eax - 0x78], esi
jo 0xf004da
cmc
mov byte [eax + 0x77775109], cl
mov byte [ecx], cl
push ecx
ja 0xf005d0
or dword [ecx + 0x77], edx
ja 0xf005d1
ja 0xf005d2
ja 0xf00565
or dword [eax - 0x78], esi
jo 0xf004e6
lea ecx, [eax + 0x77510988]
ja 0xf005dd
ja 0xf005de
ja 0xf00571
or dword [eax + 8], esi
jo 0xf00572
mov byte [eax - 0x77a6f678], cl
mov byte [eax + 0x8700988], cl
mov byte [eax + 0x70098888], cl
or byte [eax + 0x59098888], cl
mov byte [eax + 0x3de8888], cl
jg 0xf00526
mov byte [eax - 0x77f78ff7], cl
mov byte [eax - 0x7777a6f7], cl
mov byte [eax - 0x5c80fc22], cl
mov byte [ecx], cl
jo 0xf0057e
mov byte [eax - 0x77a6f678], cl
mov byte [eax + 0x7f03de88], cl
mov dword [0xd62c7b78], eax
mov dh, bl
add edi, dword [edi - 0x5d]
js 0xf00600
sub al, 0xd6
popal
adc esi, dword [esi + 0x77]
jbe 0xf00602
ja 0xf00603
ja 0xf0058f
add cl, byte [esi + 0x4841bbce]
pushal
mov cs, esi
mov ebx, 0x89604841
xchg dword [edx + edx*4], ecx
mov byte [eax - 0x75a6f678], cl
mov byte [eax - 0x219ffc78], cl
add edi, dword [edi - 0x5d]
mov dword [edi - 0x77776df4], eax
mov byte [ecx], cl
pop ecx
mov cl, byte [eax + 0x60038888]
fiadd word [ebx]
jg 0xf00549
js 0xf00623
sub al, 0xd6
xor ecx, dword [ecx + 0x61888888]
sti
jbe 0xf0062a
ja 0xf0058a
mov dword [0x4f0380f5], eax
xlatb
salc
add ebp, dword [ebp - 0x2b]
dec edx
or byte [eax + 0x5acb403], 0xec
add eax, 0x38cacec
in al, dx
lodsb al, byte [esi]
mov word [ebx], es
mov esp, 0xacec05ac
mov word [ecx - 0x74], fs
popal
mov word [eax - 0x117c7778], cs
popal
mov byte [eax + 0x61ee8388], cl
out 0x30, al
sbb al, 0x8a
cmp byte [eax + 0x48094d8b], cl
mov byte [ebx - 0x1cb7f6b3], cl
mov ecx, dword [eax - 0x75c7ce78]
mov byte [eax + 0x9d3b932], cl
invalid
mov ecx, dword [ebp + 9]
dec eax
jecxz 0xf0056f
mov byte [eax - 0x7775c7cf], cl
mov byte [edx], dh
mov ecx, 0xb80f09d3
cwde
enter 0xffffffffffff87c1, 0xd
jle 0xf0066f
ja 0xf00671
popal
mov word [eax - 0x687a7778], cs
xchg edi, eax
xor al, 0xaa
stosb byte es:[edi], al
inc edi
dec esi
xor cl, dh
test dword [esi], edi
dec esi
xor al, byte [0xb9b9198e]
mov ecx, 0x673247ba
das
xor cl, cl
test dword [edi], ebp
xor bh, byte [0xb9b98d89]
mov ecx, 0xee326192
xchg edx, eax
popal
xor ch, dh
mov ecx, 0xc032403e
xor al, al
sar byte [ebp + 0x4338403e], 0xb9
mov ecx, 0x3db6b9b9
invalid
mov ebp, 0x4338403e
mov ecx, 0xb6b9b9b9
cmp eax, 0xb9b9b9ff
mov edx, 0xb17e386f
mov ecx, 0x5038b9b9
mov cl, 0xb9
mov ecx, 0xb94038b9
mov ecx, 0x3db6b9b9
imul eax, dword [esi + 0x46], 0xbe32df46
js 0xf006ab
mov ch, 0x3a
pop ecx
mov dh, 0x38
inc ecx
mov edx, 0xb6b9b9b9
cmp al, 0xb4
mov ecx, 0x32dfb9b9
mov esi, 0xb6465938
inc esi
mov dh, 0xb9
mov ecx, 0xa1b87bba
invalid
mov ecx, 0xb87bbab9
mov eax, dword [0x7e3af0f0]
mov ebx, 0x46467150
inc esi
push eax
mov ebp, 0x89b9b9b9
xlatb
mov byte [0xbb2d019a], al
or dword [ecx + 0x79387cba], edi
movsd dword es:[edi], dword [esi]
mov ebp, 0x4600b9b9
mov eax, 0x7703b9b9
push edi
sti
jne 0xf0062b
test eax, 0x3cb6f0f9
dec edi
inc esi
inc esi
inc esi
push eax
mov ebp, 0x82b9b9b9
sbb eax, 0x9fcba95
dec ebx
cld
retf