Function at 0x40f3eb
Capabilities:
Encode data using xor

Disassembly:
shl dword [esi - 0x5bdb59db], 0x60
cmpsb byte [esi], byte es:[edi]
and al, 0xa4
pushal
stc
jge 0x40f252
lds esp, [edi + 0x742d2d48]
je 0x40f1cc
cmpsb byte [esi], byte es:[edi]
dec eax
lds esp, [esi + 0x68a4f968]
leave
scasb al, byte es:[edi]
push eax
int 0x2d
pop eax
sub edi, dword [ebp - 0x3b]
sub ch, byte [di]
sub eax, 0x2d2a48c5
sub eax, 0xd3d168ea
rcl dl, cl
shl byte [esi + 0x3ec6c968], cl
push ds
in eax, dx
insd dword es:[edi], dx
out dx, al
cmpsb byte [esi], byte es:[edi]
dec eax
invalid
lds edx, [ebp - 0x3bd2d2ba]
cmp edx, ebx
rcl dl, cl
js 0x40f1cf
sar dword [esi + edi*2 - 0x5a], 0x68
and dword [esi + 0x68a421ed], ebp
ror dword [ecx - 0x5a], 1
xor byte [0xa62d2d2d], ch
sub eax, 0xa62d2d2d
dec ecx
mov gs, word [0xa62d2d2d]
push 0x2170a625
cmpsb byte [esi], byte es:[edi]
inc eax
shl dword [esi - 0x322d2eb2], 1
jbe 0x40f238
out dx, eax
and eax, 0xaa74752d
je 0x40f204
sub dword [ecx], ecx
ror ch, cl
js 0x40f206
sar dword [esp + edi*2 + 0x7e], 0x7b
jp 0x40f2b0
cmpsb byte [esi], byte es:[edi]
sbb byte [0xa42d2d2d], ch
pop eax
shr edx, 1
push 0x6ddfaad5
sub eax, 0x58d22d47
and edx, edx
pop eax
aad 0xd2
pop eax
and eax, 0x2c3654c5
sub eax, 0xa62168a6
insd dword es:[edi], dx
sub dword [esi + 0x60a6d0cd], ebp
and dword [esp + ebp*2 + 0x10a64929], esp
sub eax, 0xa62d2d2d
jo 0x40f271
movsb byte es:[edi], byte [esi]
push ss
dec ecx
movsb byte es:[edi], byte [esi]
xor byte [0x722d2d2d], ch
jae 0x40f322
in al, 0xef
and eax, 0xc1a6782d
scasb al, byte es:[edi]
shl dword [0xd17a7b7e], 0xa4
push 0x7ded1ed1
js 0x40f258
shr dword [esi + 0x7b7e25c1], 0x7a
shl dword [eax + ebp*2 + 0x7ded1ed1], 1
jge 0x40f33f
rcr byte [eax - 0x2f], cl
rcr byte [eax + 0x39], cl
rcr byte [eax + 0x3d], cl
rcr byte [eax + 0x21], cl
rcr byte [eax + 0x25], cl
lds edx, [ebx]
pop edx
sub eax, 0xde9ae2d
movsb byte es:[edi], byte [esi]
push 0x767372d5
cmpsb byte [esi], byte es:[edi]
push 0x70c8a6d5
out dx, al
jnp 0x40f2b9
cmpsb byte [esi], byte es:[edi]
pop ecx
or dword [ecx], esp
cmpsb byte [esi], byte es:[edi]
arpl word [0x73c5e31e], sp
invalid
sub eax, 0x953f582d
xchg edx, eax
fisubr word [ebp + 0x2d]
cmpsb byte [esi], byte es:[edi]
pushal
and dword [esp + ebp - 0x3b9212e2], esp
popfd
sub eax, 0x48ae2d2d
cmc
sub eax, 0xc6f168ea
fisubr word [ebp + 0x2d]
mov ebp, ss
imul byte [edi + 0x2d]
mov al, byte [0xec1ef560]
movsb byte es:[edi], byte [esi]
push 0x3568a6cd
movsb byte es:[edi], byte [esi]
push 0x2168a6c9
movsb byte es:[edi], byte [esi]
push 0x3168a6c5
movsb byte es:[edi], byte [esi]
push 0xd68a6c1
movsb byte es:[edi], byte [esi]
push 0xd948aedd
sub eax, 0x2dd548ae
scasb al, byte es:[edi]
dec eax
shr dword [0xa4d948a4], 1
inc eax
aad 0x49
mov word [0xa42d2d2d], gs
push 0xf568a0f5
dec ecx
mov gs, word [0xea2d2d2d]
push 0x2d2d2ce5
sub eax, 0xa42568a6
push 0x3d68a6e1
movsb byte es:[edi], byte [esi]
push 0x1f2dc5fd
sub eax, 0xadada62d
invalid
cmpsb byte [esi], byte es:[edi]
push 0xe168a425
cmpsb byte [esi], byte es:[edi]
push 0xfd68a43d
lds ebp, [0xa62d2d1f]
lodsd eax, dword [esi]
lodsd eax, dword [esi]
sub eax, 0x68a42d2d
stc
mov al, byte [0xa67de168]
push 0xd21dd225
js 0x40f3b2
je 0x40f42f
scasb al, byte es:[edi]
dec eax
in eax, 0x2d
scasb al, byte es:[edi]
push eax
shr dword [0xa6493a59], 1
cmpsb byte [esi], byte es:[edi]
xor byte [0xa62d2d2d], ch
cmpsb byte cs:[esi], byte es:[edi]
jo 0x40f3c6
movsb byte es:[edi], byte [esi]
dec ecx
movsb byte es:[edi], byte [esi]
xor byte [0xc62d2d2d], ch
and al, 0xa6
push 0x2d8e49f5
sub eax, 0x68a62d2d
in eax, 0x76
in al, 0xee
js 0x40f393
invalid
sar dword [esi + edi*2 - 0x2f], 0xa6
push 0x2565a621
push ds
pushal
and ebp, eax
js 0x40f3da
rcl dl, cl
cmpsb byte [esi], byte es:[edi]
push 0x296da625
scasb al, byte es:[edi]
int 0x4b
pop ecx
cmp al, 0xa6
push 0x96dea21
sub al, 0x2d
sub eax, 0x6ded1e2d
mov byte [ecx - 0x3a], 0x47
inc edi
sub al, 0xa6
push 0x355dd221
cmpsb byte [esi], byte es:[edi]
push 0x395dd221
cmpsb byte [esi], byte es:[edi]
push 0x215dd221
inc edi
sub eax, 0xa63d58d2
push 0x3d5dd221
rcr byte [eax + 0x25], cl
vaddsd xmm5, xmm0, qword [0xde9ae2d]
cmpsb byte [esi], byte es:[edi]
push 0x955ae21
sub eax, 0x58d22658
and eax, 0xc52158d2
sub bl, dl
rcl dl, cl
inc edi
sub eax, 0x2d472d47
inc edi
sub eax, 0x68a02d47
sar dword [ebp + 0x45], 1
push cs
sub al, 0x2d
sub eax, 0xd2d388c5
shr byte [esi + 0x68a631e9], cl
shl dword [esi + 0x4ea62170], 1
xor dword [esi - 0x322df2ba], esp
push ds
in eax, dx
insd dword es:[edi], dx
jbe 0x40f46b
out dx, al
js 0x40f430
sar dword [esi + edi*2 + 0x7b], 0x7a
cmpsb byte [esi], byte es:[edi]
push eax
and eax, 0xa63d6aa6
pop edx
and dword [eax + ebp*2 - 0x390c592f], esp
add byte [esi + 0x2858d2d3], ch
lds esi, [esi - 0x59d2d2a5]
pushal
shl dword [ebx - 0x5a], 1
jmp 0x40f4f6
movsb byte es:[edi], byte [esi]
xor eax, 0x5a217216
sub dword [esi], edx
ficomp word [ebx + 0x28]
lds edi, [ebx + 0x5b]
sub eax, 0x46eba62d
in eax, dx
cmp dword [esi], ebp
push 0x767372d1
in al, 0xee
jb 0x40f56b
jbe 0x40f4de
out dx, al
cmpsb byte [esi], byte es:[edi]
imul ecx, dword [ecx], 0x59a67b25
or dword [0xb4c52ba4], esp
sbb eax, 0xada62d2d
cmpsb byte [esi], byte es:[edi]
lodsd eax, dword [esi]
mov ch, 0x2d
sub eax, 0x296ba42d
lds esp, [esi - 0x5bd2d2e3]
popfd
mov ch, 0x2d
sub eax, 0x73eba62d
out dx, al
lds edx, [ecx + 0x1d]
sub eax, 0xb5ada62d
sub eax, 0x26c62d2d
cmpsb byte [esi], byte es:[edi]
and eax, 0x29096116
pop ecx
and al, 0xa6
cmpsb byte [esi], byte es:[edi]
insd dword es:[edi], dx
sub dword [eax + 0x6ddc58ed], ebp
out dx, al
push ds
in eax, dx
out dx, al
jnp 0x40f50b
ja 0x40f565
sub eax, 0x959a62d
and eax, 0x2db59d16
sub eax, 0x4d4a582d
pop eax
dec edx
dec ebp
sbb eax, 0x63a62d2d
sub dword [ebp + 0x2d2d2db5], esp
jae 0x40f554
out dx, al
lds edx, [ebx - 0x5259d2d3]
cmpsb byte [esi], byte es:[edi]
lodsd eax, dword [esi]
mov ch, 0x2d
sub eax, 0xa624c62d
sub dword gs:[esi], edx
fcomp qword [ecx + 0x23]
cmpsb byte [esi], byte es:[edi]
in al, dx
scasb al, byte es:[edi]
push ebp
sub dword [0xc473dc58], ebp
xchg ecx, eax
pop eax
sub eax, 0x2963a62d
movsb byte es:[edi], byte [esi]
sub dword gs:[ebx - 0x12], esi
js 0x40f538
shr dword [esi - 0x2a73ca3f], 0xf6
outsd dx, dword [esi]
sub eax, 0x2dc548ae
mov al, byte [0xec1ec560]
cmpsb byte [esi], byte es:[edi]
pushal
and eax, 0xa6dd68a4
push 0xd968a421
cmpsb byte [esi], byte es:[edi]
push 0x68ea6d39
ror ebx, 0xdf
insd dword es:[edi], dx
sub eax, 0xa4d560a4
push 0x2d8c49d1
sub eax, 0x68a42d2d
lds esp, [eax - 0x71b63a98]
sub eax, 0xd22d2d2d
pop eax
xor eax, 0x3d58d27c
lds ebx, [eax + ebx*2 - 0x1a59d2d3]
cmpsb byte [esi], byte es:[edi]
push 0x2d8e49c5
sub eax, 0xeca62d2d
cmp eax, 0x2d589cc5
sub eax, 0x68a6e5a6
lds ecx, [ecx - 0x72]
sub eax, 0xa62d2d2d
in al, dx
in al, 0xee
jge 0x40f639
rcr byte [eax], cl
sub eax, 0xa02d2d2d
imul ecx, dword [ecx], 0x9490621
and dword [esi + 0x7b], edi
jp 0x40f5a6
add eax, 0xd58cc5a6
imul byte [edi + 0x2d]
push ds
call 0xd199c88d
ljmp 0xd2d2
shr edx, 1
push 0xd2d2d2d1
shl byte [eax - 0x71b62698], cl
sub eax, 0xee2d2d2d
jge 0x40f66c
rcr byte [eax], cl
sub eax, 0xa02d2d2d
imul ecx, dword [ecx], 0x9490621
and dword [esi + 0x7b], edi
jp 0x40f5d9
add eax, 0xd58cc5a6
imul byte [edi + 0x2d]
push ds
call 0xdd899ac0
rcr byte [eax - 0x2f], cl
ljmp 0xd2d2
aad 0xf6
outsd dx, dword [esi]
sub eax, 0xa47de81e
dec eax
fst st(2)
pop eax
shr edx, 1
push 0xd2d2d2d1
shl byte [eax - 0x71b62698], cl
sub eax, 0xee2d2d2d
jge 0x40f6a2
rcr byte [eax], cl
sub eax, 0xa02d2d2d
imul ecx, dword [ecx], 0x9490621
and dword [esi + 0x7b], edi
jp 0x40f60f
add eax, 0xd58cc5a6
imul byte [edi + 0x2d]
push ds
cmpsb byte [esi], byte es:[edi]
lds ecx, [ebp + edx*8 + 0x1e2d6ff6]
call 0xdda99af6
rcr byte [eax - 0x2f], cl
ljmp 0xd2d2
pushal
fstp qword [esi]
loopne 0x40f66c
test al, al
rcl dl, cl
invalid