Function at 0x40f398
Capabilities:
Encode data using xor

Disassembly:
daa
adc dword [edx], ecx
outsd dx, dword [esi]
outsb dx, byte [esi]
add byte [eax], al
or dh, byte [eax + ebp]
add byte [ecx], al
or al, 6
or byte [ebx], bl
sub byte [esi], ah
add byte [eax], al
or ch, byte [0xbd720310]
push cs
add byte [eax + 2], dh
outsd dx, dword [esi]
xor eax, dword [eax]
add byte [esi], al
pop ss
or ebp, dword [ebx]
or dword [ecx], edx
or ch, byte [edi + 0x76]
add byte [eax], al
or ch, byte [0x1115ded0]
or dh, byte [ebp + 0x50]
add byte [eax], al
add dword [ebx], edx
or edx, dword [ecx]
or ebp, dword [edi + eax]
adc dword [ebx], ecx
outsd dx, dword [esi]
ja 0x40f3dd
add byte [edx], cl
fadd qword [edi]
sub eax, 0x4d7e7b
add byte [esi + eax], al
outsd dx, dword [esi]
and eax, dword [eax]
add byte [edx], cl
push es
sub byte [eax + eax], bh
or dh, byte [ebx + 0x7d]
add byte [eax], al
or dl, byte [ebx]
add al, 0x73
and dword [eax], eax
add byte [edx], cl
or eax, 0x4113b2b
outsd dx, dword [esi]
jle 0x40f409
add byte [edx], cl
push ss
lea ebp, [ecx]
add byte [eax], al
add dword [edi + 0x7f], ebp
add byte [eax], al
or dl, byte [ebx]
add eax, 0xf1720511
push cs
add byte [eax + 0x1a], dh
outsd dx, dword [esi]
outsd dx, dword [esi]
add byte [eax], al
or ch, byte [0x5110918]
sub byte [eax + 0x160a0000], al
lea ebp, [ecx]
add byte [eax], al
add dword [eax], ebp
push ds
add byte [eax], al
push es
outsd dx, dword [esi]
sub byte [eax], al
add byte [edx], cl
adc dword [edi + ebp*2], eax
add dword [eax], 0x33150a00
mov ebx, 0x4110cde
sub al, 7
adc dword [edi + ebp*2], eax
ja 0x40f454
add byte [edx], cl
fmul qword [ecx]
add ebp, dword [eax]
push edi
add byte [eax], al
push es
fimul word [eax + 0x13]
push es
add esi, dword [edx - 0xb]
push cs
add byte [eax + 2], dh
adc dword [esi], eax
outsd dx, dword [esi]
xor al, 0
add byte [esi], al
fidiv word [esi]
adc eax, dword [edi]
add esi, dword [edx - 0xb]
push cs
add byte [eax + 2], dh
adc dword [edi], eax
outsd dx, dword [esi]
xor al, 0
add byte [esi], al
fisub word [ebx + edx]
or byte [ebx], al
jb 0x40f47e
push cs
add byte [eax + 2], dh
adc dword [eax], ecx
outsd dx, dword [esi]
xor al, 0
add byte [esi], al
ficom word [edx]
adc ecx, dword [ecx]
add esi, dword [edx - 0xb]
push cs
add byte [eax + 2], dh
adc dword [ecx], ecx
outsd dx, dword [esi]
xor al, 0
add byte [esi], al
fiadd word [eax]
sub al, byte [eax]
add byte [eax], al
inc ecx
xchg esp, eax
add byte [eax], al
add al, byte [eax]
add byte [eax], al
dec edi
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
add dword [eax], 0
add byte [0], dl
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax + eax + 0x4f0000], dh
add byte [eax], al
add eax, dword [ecx]
add byte [eax], al
or al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [ecx], al
add byte [eax], al
sbb byte [ecx], al
add byte [eax], al
adc al, byte [eax]
add byte [eax], al
push esp
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bl
add dword [eax], eax
add byte [edx], ch
add dword [eax], eax
add byte [edx], dl
add byte [eax], al
add byte [ebp], dl
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [ecx], al
add byte [eax], al
cmp al, 1
add byte [eax], al
adc al, byte [eax]
add byte [eax], al
push esi
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bl
add dword [eax], eax
add byte [esi + 1], cl
add byte [eax], al
adc al, byte [eax]
add byte [eax], al
push edi
add byte [eax], al
add esi, eax
add al, 0x6f
sbb eax, dword [eax]
add byte [edx], cl
sub eax, 0x6f030220
daa
add byte [eax], al
push es
sub al, 3
add eax, 0x3020a2d
push cs
add al, 0x6f
and eax, 0x2a060000
add al, byte [0x326f040e]
add byte [eax], al
push es
sub al, byte [edx]
push cs
add al, 0x6f
xor dword [eax], eax
add byte [esi], al
sub al, byte [eax]
add byte [ebx], al
xor byte [esi], al
add byte [edi], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0x6f
sbb eax, dword [eax]
add byte [edx], cl
pop ss
xor byte [esi + ecx], al
add eax, 0x302472d
outsd dx, dword [esi]
sub al, byte [eax]
add byte [esi], al
sub al, 3
add eax, 0x6f04312d
sbb eax, dword [eax]
add byte [edx], cl
push ss
xor dword [ecx], ecx
add al, 0x17
outsd dx, dword [esi]
jo 0x40f5a7
add byte [edx], cl
adc byte [edx], al
add al, byte [ebx]
push cs
pop es
add al, 0xe
add al, 0xe
push es
outsd dx, dword [esi]
add byte es:[eax], al
push es
sub eax, 0x2c050e23
pop ds
add cl, byte [esi]
add eax, 0x326f070e
add byte [eax], al
push es
sub al, byte [edx]
add eax, 0x326f070e
add byte [eax], al
push es
sub al, byte [edx]
push cs
add eax, 0x326f070e
add byte [eax], al
push es
sub al, byte [eax]
adc esi, dword [eax]
add al, 0
insb byte es:[edi], dx
add byte [eax], al
add byte [eax], bl
add byte [eax], al
adc dword [edx], eax
or al, byte [edx]
sbb dword [edi + 0x28], ebp
add byte [eax], al
push es
sub eax, 0x4c7e5f
add byte [edx + esi*2], al
and dword [edi], ecx
add byte [eax + 0x28], dh
add byte [eax], 0
or cl, byte [ebx]
pop es
sub byte [edx], bh
add byte [edx], cl
sub al, 0x47
jae 0x40f635
add byte [eax], al
push es
or dh, byte [edx + 0x75]
or al, 0
jo 0x40f622
sub byte [ebx], cl
add byte [edx], cl
push es
sub byte [ecx], bl
add byte [esi], al
pop ecx
add byte [eax], al
push es
push es
sbb dword [edi + 0x28], ebp
add byte [eax], al
push es
sub al, 0x12
push es
jb 0x40f66b
invalid
push es
sbb dword [edi + 0x29], ebp
add byte [eax], al
push es
outsd dx, dword [esi]
xor al, byte [eax]
add byte [esi], al
push es
outsd dx, dword [esi]
das
add byte [eax], al
push es
sub al, 6
pop ss
or byte [esi], 0
add al, 6
add ch, byte [edi + 0x38]
add byte [eax], al
push es
push es
sub dl, byte [ebx]
xor byte [eax + eax], cl
bound eax, qword [ecx]
add byte [eax], al
sbb dword [eax], eax
add byte [ecx], dl
push ss
or cl, byte [esi]
or eax, dword [edx]
sub byte [esi], bl
add byte [esi], al
add byte [eax], al
push es
push edx
add bl, byte [eax]
outsd dx, dword [esi]
sub byte [eax], al
add byte [esi], al
sub eax, 0x752805
add byte [esi], al
add dl, byte [esi]
outsd dx, dword [esi]
sub byte [eax], al
add byte [esi], al
sub al, 0xa
sub byte [esi], dh
add byte [esi], al
cmp byte [ecx + eax], bl
add byte [eax], al
add bl, byte [esi]
outsd dx, dword [esi]
sub al, byte [eax]
add byte [esi], al
sub al, 0xb
add ch, byte [eax]
pop edi
add byte [eax], al
push es
cmp byte [eax], cl
add dword [eax], eax
add byte [edx], al
outsd dx, dword [esi]
aaa
add byte [eax], al
push es
add dl, byte [edi]
outsd dx, dword [esi]
sub byte [eax], al
add byte [esi], al
sub al, 0xa
sub byte [eax], bh
add byte [esi], al
cmp bh, ch
add byte [eax], al
add byte [ebx], al
add dl, byte [esi]
outsd dx, dword [esi]
sub eax, dword [eax]
add byte [esi], al
add bl, byte [edi]
or ch, byte [edi + 0x2b]
add byte [eax], al
push es
adc al, 0xfe
push es
add dword [eax], 0
or dh, byte [ebx + 1]
add byte [eax], al
push es
sub byte [ecx], ah
add byte [esi], al
push ecx
add al, 2
pop ss
outsd dx, dword [esi]
sub eax, dword [eax]
add byte [esi], al
sub byte [eax + eax], ah
push es
push ecx
add eax, 0x6f0b1f02
sub eax, dword [eax]
add byte [esi], al
sub byte [ebp], ah
add byte [esi], al
push ecx
push cs
add al, 2
sbb byte [edi + 0x2b], ch
add byte [eax], al
push es
sub byte [esi], ah
add byte [esi], al
push ecx
push cs
or al, byte [edx]
pop ds
or dword [edi + 0x2b], ebp
add byte [eax], al
push es
sub byte [eax], ah
add byte [esi], al
push esp
add ch, byte [edi + 0x2c]
add byte [eax], al
push es
or ecx, dword [esi]
add eax, 0x2b6f1902
add byte [eax], al
push es
add bl, byte [edx]
outsd dx, dword [esi]
sub eax, dword [eax]
add byte [esi], al
add bl, byte [ebx]
outsd dx, dword [esi]
sub eax, dword [eax]
add byte [esi], al
add bl, byte [edx]
outsd dx, dword [esi]
sub byte [eax], al
add byte [esi], al
add bl, byte [edi]
movq mm5, qword [eax]
add byte [eax], al
push es
add bl, byte [edi]
or al, 0x6f
sub eax, dword [eax]
add byte [esi], al
add bl, byte [0x2b6f]
push es
pop es
push cs
pop es
push cs
push es
push cs
or cl, byte [edx + 0x28]
add byte [bx + si], al
push es
push ecx
jle 0x40f7b5
add byte [eax], al
add al, 0x2c
and eax, 0x4a060e1a
xor ebx, dword [edi]
jb 0x40f7f1
invalid
add byte [ecx], al
or al, 8
push ss
jb 0x40f7a3
invalid
push es
sub byte [eax + eax], dh
je 0x40f7a7
add byte [esi], al
push ecx
pop ss
or al, byte [esi]
sub al, 0xa
add edx, dword [eax + 0x14]
inc byte [ecx]
push ss
inc byte [ecx]
sub eax, dword [ecx]
pop ss
jb 0x40f77b
invalid
lcall 0xa0a, 0x8428
fimul word [eax + 0xc]
jb 0x40f82a
adc byte [eax], al
jo fcn.0040f808
push ss
lcall 0x100, 0x288d17
add dword [ebx], edx
add al, 0x11
add al, 0x16
or byte [edi + 0x2d], ch
add byte [eax], al
or ah, byte [edx + 0x42280411]
add byte [eax], al
push es
fisub word [ecx + 0x102d72]
jo 0x40f82c
push ss
lcall 0x100, 0x288d17
adc eax, dword [0x9160511]
add byte [eax], al
add dword [ebx], edx
add eax, 0x9160511
outsd dx, dword [esi]