Function at 0x40f2e6
Capabilities:
Encode data using xor

Disassembly:
scasb al, byte es:[edi]
adc eax, dword [ebx - 0x7c73bf83]
and dword [esp + ebx*4], 0xffffff82
and dword [esi + 0x435767d4], 0xffffffc8
outsd dx, dword [esi]
push edi
adc eax, dword [ebx + 0x282d435]
inc ebx
inc ebx
inc ebx
xor ebp, dword [eax - 0x7d]
add dword [ebx + 0x2683dd19], 0xffffffca
and dword [esi], 0xffffffca
outsb dx, byte [esi]
push edi
adc eax, dword [ebx + 0x43573843]
enter 0x576a, 0x13
and dword [esi], 0x7f
movsb byte es:[edi], byte [esi]
add byte [eax + 0x7d07ddc6], ah
fadd dword [ebx + 0x43]
inc ebx
cdq
mov ebp, 0x8383c3e5
movsd dword es:[edi], dword [esi]
adc bl, al
inc ebx
enter 0xffffffffffff9766, 0x13
sbb eax, 0xffffffdd
and dword [ebx + esi*2 + 0x384306a0], 0x57
inc ebx
enter 0x5769, 0x13
cmp dword [ebp - 0x7c7c3ca2], 0x26
adc al, 0x87
movsd dword es:[edi], dword [esi]
aam 0x7b
adc al, 0x84
movsd dword es:[edi], dword [esi]
aam 0x7a
adc al, 0x85
movsd dword es:[edi], dword [esi]
aam 0x79
loop 0x40f041
mov dword [0x8323433d], eax
add dword [ebx + 0x38], 0x57
inc ebx
enter 0x5769, 0x13
and dword [esi], 0xffffffa0
jnp 0x40f0f2
and al, 2
add esp, dword [eax + 4]
mov dword [0x83638337], eax
and dword [esi], 0xffffff96
add al, byte [ebx]
pushal
add al, 0xa3
aaa
and dword [ebx - 0x7d], 0xffffff83
xchg esi, eax
jp 0x40f102
mov bl, 0xb3
jnp 0x40f065
cwde
jns 0x40f128
rep movsd dword es:[edi], dword [esi]
ror byte [eax + 0x2c8354c6], 1
mov al, dh
push esp
and dword [ebp + 0x54c68bc6], 0xffffff83
movsd dword es:[edi], dword [esi]
enter 0xffffffffffffc68c, 0x54
and dword [ebp + 0x54c689d2], 0xffffff83
mov eax, esi
push esp
and dword [ebp + 0x54c68cc8], 0xffffff83
movsd dword es:[edi], dword [esi]
ror byte [ecx + 0x7d8354c6], cl
rol byte [edx], 0x43
inc ebx
jge 0x40f0c4
add al, byte [ebx + 0x43]
movsd dword es:[edi], dword [esi]
aam 0x7b
push eax
cmp dl, byte [eax + ebx + 0x7d]
jnp 0x40f129
add dword [ebx - 0x5f8c5b67], 0xffffff85
fisttp qword [edx + 0x4302b17d]
inc ebx
jge 0x40f0cd
add al, byte [ebx + 0x43]
cdq
jge 0x40f193
rol byte [ebx - 0x5f8c5b7d], 1
mov al, byte [0x7d87dd85]
insd dword es:[edi], dx
test ebp, ebx
xchg dword [ebp + 0x6d], edi
fld qword [edi + 0x43026d7d]
inc ebx
add al, byte [ebx + 0x43]
cdq
jge 0x40f18d
pop esi
add dword [ebx + 0x7d829aa5], 0xffffffdd
xchg esi, eax
add dword [ebx - 0x7a5d8c5c], 0xffffffdd
dec edx
jge 0x40f163
les eax, [ebx - 0x37bc667d]
insd dword es:[edi], dx
push edi
adc eax, dword [ebx + 0x540d612c]
cmp dword [ebp + 0x44], 0x1e
add dword [ebx + 0x54c6842c], 0xffffff83
jge 0x40f0f4
push esp
cmp dword [ebp - 0x6d], 0xffffffdd
add dword [ebx - 0x7a5d8c5c], 0xffffffdd
fld qword [ebx - 0x5d8c5b7d]
test ebp, ebx
and dword [ebx + esi*2 - 0x7a227a5e], 0x7d
rol esp, cl
add dword [ebx + 0x1d727d99], 0xffffff83
and dword [ebx + esi*2 - 0x3a227a5e], 0x7d
test dword [ebp - 0x2d], edi
les eax, [ebx + 0x727d9983]
sbb eax, 0x73a48383
mov byte [0x7dc5dd85], al
sbb dword [ecx - 0x7ce28d83], 0xffffff83
movsb byte es:[edi], byte [esi]
jae 0x40f11a
test ebp, ebx
lds edi, [ebp - 0x71]
les eax, [ebx + 0x7d189983]
aam 4
pop esp
add dword [ebx - 0x2b82e767], 4
add dword [ebx + 0x6073a499], 0x45
push edi
jge 0x40f199
les eax, [ebx - 0x6d82667d]
jge 0x40f127
sbb eax, 0x9a648383
lcall 0x9631, 0x47046072
jae 0x40f1e0
jb 0x40f1fc
add al, 0x47
xor dword [esi - 0x22bbc18d], edx
add eax, 0xdd579799
inc esp
fld qword [0xdd579799]
sbb dword [ebp - 0x7d], 0xffffff83
xchg ebx, eax
cmp dword [ebp + 1], 0xffffffcb
ret
push edi
jge 0x40f15d
inc ebp
add dword [ebx - 0x7cba1b83], 0xffffff83
push cs
aam 0x7e
cmp dword [ebp - 0x1c], 0x45
add dword [ebx - 0x2bd9f1c2], 0x7e
test dword es:[esi], esp
lds esp, [ebp - 0x68a8876a]
jge 0x40f1bd
pushfd
add dword [ebx + 0x26349999], 0xffffff9c
jge 0x40f208
aam 0x78
movsd dword es:[edi], dword [esi]
aam 0x7c
and al, 0xa2
jnp 0x40f16e
mov al, byte [0x157d5704]
inc ebp
and dword [ebp + edi*2 - 0x64], 0x45
add dword [ebx + 0x282d435], 0x43
aam 0x82
add al, byte [ebx + 0x43]
inc ebx
inc ebx
inc ebx
aam 0x7c
dec eax
push eax
jae 0x40f19a
xor al, 0x26
pushfd
pushfd
jge 0x40f241
aam 0x82
add al, byte [ebx + 0x43]
inc ebx
jno 0x40f257
add dword [ebx + 0x4c9c7d83], 0xffffff83
xor dword [edi*2 - 0x7c7ce18f], 0xffffffbd
or byte [edx], al
inc ebx
inc ebx
jge 0x40f290
push ds
add dword [ebx + 0x430208bd], 0x43
cwde
jle 0x40f1c2
sbb byte [esi], ah
aam 0x86
and al, 0x73
xchg byte [ebp + 0x265c82d4], ah
retf 0x8383
and dword [esi], 0x44
pop esp
sub al, 0x83
add dword [ebx - 0x7a2bd97d], 0x26
lcall 0x1c26, 0x829e2686
add byte [ebx + 0x7b], 0x1a
mov ch, 0xf3
test dword [ebx - 0x7bda66a7], eax
mov word [ebx + 0x7b], es
pop ecx
cdq
and eax, 0x7b438c84
cwde
jle 0x40f1f9
xchg edi, eax
sbb al, bl
sbb dword [esi - 0x30], ebx
add dword [ebx - 0x5f5a7c7d], 0xffffff82
xor eax, 0xff2581d4
xchg ebx, eax
sbb ebp, 0xffffff83
inc ebx
mov al, byte [0x81a04386]
inc ebx
mov al, byte [0x4aa17d85]
ret
xchg esi, eax
xchg byte [ebp + 0x265c84d3], ah
rol byte [ebx + 0x26838383], cl
lcall 0xcaa5, 0x5c52a582
add dword [ebx - 0x25e47c7d], 0x1a
mov ch, 0xf3
test dword [ebx + 0x247e2698], eax
test dword [ebx + 0x247e2698], eax
jle 0x40f23b
sbb al, bl
sbb dword [edx + 0x5082d4a5], eax
jae 0x40f317
push edi
push edi
push edi
inc ebx
mov al, byte [0x88a04382]
inc ebx
mov al, byte [0x86a04387]
inc ebx
mov al, byte [0x21127d85]
add dword [ebx - 0x5a748bdc], 0xffffffd4
sbb dword [ebx], 0xd4261ada
and dword [esi], 0xd8349abc
and byte [esi], 0x60
mov word [esi + reloc.comctl32.dll_InitCommonControls], es
idiv byte [ebp - 0x26]
mov edi, 0x83dd4343
fadd dword [ebx - 0x20]
mov byte [ebx - 0x20], al
xchg ch, bl
add dword [ebx + 0x60], 0xffffff8c
mov word [ebx - 0x20], es
xchg dword [ebx + 0x60], eax
mov word [ebp + edi*2 - reloc.comctl32.dll_InitCommonControls], cs
and al, 0x74
mov ebx, edx
xor al, 0x98
jle 0x40f33e
jle 0x40f2ad
sbb byte [ebx - 0x3cb37a5e], ah
add dword [ebx + 0x337107a0], 0x40
mov al, byte [0x40337107]
xchg ebx, eax
and dword [esi], 0xffffff96
xchg byte [ebp - 0x6c8caf3d], ah
mov ebp, 0x8383836f
and al, 0x9c
jns 0x40f2bf
xor eax, 0x403e7ad4
jp 0x40f37e
inc eax
xchg ebx, eax
sub dword [ebx - 0x7cecc57f], 0xffffffa6
xchg esi, eax
jns 0x40f39c
mov bl, 0xa5
aam 0x7b
aam 0x89
movsd dword es:[edi], dword [esi]
aam 0x7c
aam 0x86
movsd dword es:[edi], dword [esi]
aam 0x7d
aam 0x8a
movsd dword es:[edi], dword [esi]
aam 0x7e
aam 0x8b
movsd dword es:[edi], dword [esi]
aam 0x7f
and al, 0x9c
add byte [ebx - 0x7c7e63dc], 0x24
pushfd
add byte [ebx - 0x5a7f635b], 0x9e
sbb dword [ebx + ebp*4 - 0x7d], 0xa5838383
aam 0x79
cmpsb byte [esi], byte es:[edi]
aam 0x79
add dword [ebx - 0x59862b5b], 0xffffffd4
jns 0x40f3e3
pop esp
sub al, 0x83
add dword [ebx + 0x75d43583], 0xffffffc3
add dword [ebx - 0x7a2bd97d], 0xffffffa5
aam 0x76
aam 0x87
movsd dword es:[edi], dword [esi]
aam 0x77
jge 0x40f324
jae 0x63a41a2a
add dword [ebx + 0x78d4a583], 0xffffffa6
aam 0x76
push edi
aam 0x85
inc ebx
pop dword [ebx - 0x68]
js 0x40f353
cdq
and al, 0x9c
jne 0x40f342
and al, 0xa2
add byte [ebx + 0x265c4960], 0xca
add dword [ebx + 0x44268383], 0x26
lcall 0xcaa5, 0x5c44a579
add dword [ebx - 0x3ac17c7d], 0x26
aam 0x79
pop esp
sub al, 0x83
add dword [ebx + 0x75d42683], 0x1a
mov ch, 0x34
cwde
add dword [ebx + 0x1a75d426], 0xffffffb5
xor al, 0x98
jle 0x40f386
sbb byte [edx + 0x2686d426], al
xchg ebp, eax
test dword [eax - 0x6a], edx
xchg byte [ebp - 0x68], bh
jg 0x40f441
inc ebx
aam 0x85
xchg ebx, eax
test byte [ebx + edi*2], ah
fsub qword [eax - 0x39]
aam 0x86
xor eax, 0x83c38c93
add dword [ebx + 0x3e937350], 0x5e
fstp st(5)
ret
and dword [esp + esi*2], 0xffffff8b
aam 0x86
and al, 0x61
mov word [ebx - reloc.comctl32.dll_InitCommonControls], es
test dword [ebx - 0x60], eax
xchg byte [ebp - 0x3c], bh
add al, byte [ebx + 0x43]
fld qword [ebx - 0x7c227c23]
fld qword [ebx - 0x2b597c23]
adc byte [edi + 0x5d], 0x4c
ret
pushal
mov ecx, 0x2319c
mov dl, byte [ecx + 0x400fff]
add dl, 0x19
sub dl, 0x2f
rol dl, 0xda
sub dl, 0xb5
mov byte [ecx + 0x400fff], dl
loop 0x4241a1
popal
jmp 0x40f21d