Function at 0x40f2e6
Capabilities:
Encode data using xor

Disassembly:
sub dl, byte [edx]
imul esi, dword [esi + 0x35c1aab6], 0xffffffb5
mov ch, 0x60
jnp 0x40f256
pop esi
pop edi
jnp 0x40f286
mov esp, 0x7abc1677
pop eax
xor al, 0xe8
jnp 0x40f27c
mov dh, 0xb6
mov dh, 0xb6
jnp 0x40f275
call 0xb6f7a8ca
mov dh, 0x7b
pop eax
mov edx, 0x7bbc647b
insb byte es:[edi], dx
xor al, 0x7b
xor al, 0xb5
arpl word es:[edx - 0x1d4945e9], bx
mov dh, 0xe2
bound edi, qword [ecx - 0x48]
enter 0x26b5, 0x60
jnp 0x40f28d
pop esi
pop esi
pop edi
loope 0x40f2c7
call 0xb6f742e6
mov dh, 0xb6
jp 0x40f2df
xor al, 0x99
pop eax
xor bh, byte [ecx + 0x2f]
salc
mov dh, 0xeb
mov dh, 0xb5
jo 0x40f238
mov ch, 0x70
xor dh, byte [ebp + 0x722aba70]
inc ebx
mov dh, 0x7b
mov dh, 0x7b
pop eax
mov esp, 0x77b8d67b
mov ah, 0x7b
salc
mov eax, 0x7bb42677
ja 0x40f2b5
mov ah, 0x7b
pop esp
mov esp, 0xe8b8567a
jnp 0x40f2ed
mov dh, 0xb6
mov dh, 0xb6
jnp 0x40f303
xor al, 0x7a
push ebx
call 0xb6f73721
mov dh, 0xb6
in eax, 0x63
lcall 0x2c7b, 0x60b6ba17
mov edx, 0x2c7b60b6
ja 0x40f2e1
mov edx, 0x3461e15f
jp 0x40f314
xor al, 0x4f
push ss
invalid
jo 0x40f288
sal byte [ebp + 0x70b5be70], 0xbc
mov ch, 0x70
mov edx, 0xb671d52a
mov ch, 0x70
mov esi, 0xb5bc70b5
jo 0x40f28b
sub dl, ch
jno 0x40f28b
mov dh, 0x77
sbb dh, al
jp 0x40f333
pop eax
xor ah, byte [ebp - 0x1b]
arpl word [ebx + 0x58], di
jnp 0x40f339
xor bh, byte [ebx - 0x58]
xchg edi, eax
xchg edi, eax
loope 0x40f31c
jnp 0x40f2da
enter 0x7bbc, 0xffffffffffffffdd
mov edx, 0xe52a1d4f
fnstsw word [edx - 0x1ad5e2b1]
scasb al, byte es:[edi]
mov ch, 0xb5
jmp 0x40f2ae
enter 0xffffffffffffb5c8, 0xfffffffffffffff1
mov esi, 0xc8c8f0b5
sub dh, byte [edi]
jno 0x40f2c6
mov dh, 0x77
sbb dh, al
in eax, 0x97
pushal
jnp 0x40f345
ja 0x40f347
rcr byte [edi + 0x76], cl
je 0x40f2da
pop edi
jbe 0x40f393
mov edx, 0xb6b63647
inc edi
mov dh, 0xb6
jo 0x40f2e5
adc dl, byte [ebp + 0x7bb6d6af]
pop esp
mov esp, 0x164f367a
salc
stosb byte es:[edi], al
push cs
mov dh, 0xb6
mov dh, 0x77
push 0x5899b622
and al, 0xab
scasd eax, dword es:[edi]
salc
mov dh, 0x86
xor ah, byte [ebx + 0x5c7cb6d7]
mov dword [0x5c7cb6d7], eax
mov dh, 0x7c
pop esp
and cl, byte [edi - 0x6a]
jp 0x40f3a7
jnp 0x40f3aa
ret 0x587a
jnp 0x40f3ed
mov edx, 0x7b1c587a
pop eax
mov esi, 0x2a1e587a
mov dh, 0xcf
mov dh, 0xb6
jnp 0x40f39c
jp 0x40f3f6
push ds
sub dh, byte [esi + 0x7bb6b6cf]
div dh
div byte [esi + 0x587ab6b6]
mov dh, 0xb6
mov dh, 0x7a
pop eax
jp 0x40f404
and byte [eax + ebx*2 + 0x1c], bh
fidivr word [ebx + 0x58]
mov edx, 0x60b5ceb5
and byte [edx + 0x62], ah
ja 0x40f425
sbb dh, byte [esi - 0x49cb8b89]
invalid
sub al, 0x5e
pop edi
xor al, 0x7b
pop eax
mov esp, 0x4fbada7b
mov edx, 0x2abc5c4f
pushal
mov ch, 0xb5
jnp 0x40f459
dec edi
pop esp
mov esp, 0xb52e602a
mov ch, 0x7b
pop eax
mov edx, 0x77b8d67b
jmp 0x58bc32fc
mov eax, 0xf0e92677
jnp 0x40f464
jmp 0x58bc32fc
mov esp, 0x36c8d699
mov dh, 0xb6
mov dh, 0x4f
push ss
salc
stosd dword es:[edi], eax
in al, dx
stosd dword es:[edi], eax
jmp 0x40f407
mov esp, 0x7bc0eeb5
pop eax
mov esp, 0xebbceeb5
mov dh, 0xb5
jo 0x40f3f2
jnp 0x40f48e
mov esp, 0xb5beeeb5
jo 0x40f3f7
sub bl, byte [edi]
jo 0x40f3f7
mov dh, 0x77
sbb dh, al
jnp 0x40f49f
mov esp, 0xb6c8f277
jo 0x40f489
mov ch, 0x70
mov edx, 0x2abc70b5
cmp byte [0xb6ebb5b5], dh
sub bh, byte [eax]
xor eax, 0xb6ebb5b5
jmp 0x40f411
jmp 0x40f413
pop eax
xor al, 0xde
ljmp 0x882a
jnp 0x40f4b7
pop esi
pop edi
loope 0x40f4f0
popal
jnp 0x40f505
mov edx, 0x7bbe597b
jno 0x40f454
jp 0x40f4f2
xor al, 0x7b
and eax, 0x35774cab
ja 0x40f4d6
mov ch, 0x70
cmp byte [edx], ch
xor ecx, 0xffffffb6
mov dh, 0x7b
pop esp
xor al, 0xdd
jnp 0x40f4c8
imul edx, dword [esi], 0xffffffc0
aaa
xchg esi, eax
jnp 0x40f512
mov esi, 0x74b8da52
cmp byte [ebx - 0x26], dl
push edx
fidivr dword [eax - 0x25acc78c]
mov edx, 0x357738f5
mov ch, 0x70
cmp dh, byte [ebp + 0x647bbc5c]
mov edx, 0x77ba707a
je 0x40f48e
mov esp, 0x7aba647b
jo 0x40f489
ja 0x40f545
mov esp, 0x7b1b74b6
mov dh, 0x74
sbb edi, dword [ebx + 0x58]
pop eax
rcr cl, 0x7a
into
jnp 0x40f535
ret 0xc27a
mov dh, 0xb6
jnp 0x40f509
mov dh, 0x7b
sbb dword [ebx + 0x16], ebp
imul edx, dword [esi], 0xffffffc0
aaa
pop eax
sal byte [edi], 0x58
xor al, 0x65
in eax, 0x63
lcall 0xe1ba, 0xc8d87b97
jnp 0x40f4f2
enter 0x7aba, 0xffffffffffffffb9
sub al, byte [edx + 0x7bb6b6ce]
mov edx, 0x822ab97a
into
mov ecx, 0xb6ce822a
mov dh, 0x7b
mov dh, 0xb6
jnp 0x40f503
test byte [edx], 0xb6
mov dh, 0xb6
jp 0x40f4ec
add dh, byte [esi - 0x2685494a]
fnstcw word [eax - 0x493184d6]
mov eax, 0xb6ce7b2a
into
mov dh, 0xb6
jp 0x40f529
mov dh, 0x7a
push cs
add dh, byte [esi + 0x197bb6b6]
in eax, 0x97
sbb ebp, esp
xchg edi, eax
sub dh, ah
into
mov dh, 0xb6
jnp 0x40f520
test byte [edx], 0xb6
mov dh, 0xb6
stosd dword es:[edi], eax
cmp edi, dword [ebx - 0x46]
add dh, byte [esi + 0x3babb6b6]
jnp 0x40f4ec
push ebx
fmul st(0), st(0)
mov eax, 0xd67b3af0
mov eax, 0xae701678
push ss
jo 0x40f4ed
salc
xchg edi, eax
dec edi
push ss
xchg edi, eax
loope 0x40f570
sub ah, bl
into
jecxz 0x40f516
mov dh, 0xb6
jnp 0x40f53c
enter 0x53ba, 0xe
push cs
add dh, byte [esi - 0x418f494a]
sub bl, byte [edx - 0x32]
mov dh, 0xb6
jnp 0x40f53a
mov eax, 0xb602fa7a
mov dh, 0xb6
in eax, 0x97
mov dh, 0xe5
xchg edi, eax
sub dl, byte [edx - 0x32]
push edx
into
mov dh, 0xb6
jnp 0x40f563
add dh, byte [esi + 0x3aabb6b6]
jnp 0x40f54f
mov dh, 0xab
cmp bh, byte [ebx - 0x26]
mov eax, 0xbdf0ae53
jnp 0x40f512
ja 0x40f570
mov eax, 0xe5ae70b6
stosb byte es:[edi], al
adc al, 0x70
mov dh, 0xb6
jnp 0x40f567
mov eax, 0xe5b8da7a
xchg edi, eax
pushal
jnp 0x40f5bf
ja 0x40f5c1
ret 0x3286
mov dword [0x6877b6d7], eax
sub dh, byte [esi + 0x4f2a5c7c]
xchg esi, eax
jnp 0x40f602
mov edx, 0x7b2e587a
pop eax
mov esp, 0x7b30587a
pop eax
rcl dh, 0x99
pop eax
sub al, 0x29
das
salc
mov dh, 0x7a
pop esp
xor bh, byte [edx + 0x58]
pop eax
xor al, 0xe8
xchg byte [esi + 0x7ab6b6b6], dh
call 0xb6f7ac4c
mov dh, 0x7a
pop eax
sub bh, byte [eax + ebx*2 + 0x2a]
call 0xb6f7ac59
mov dh, 0xb5
jo 0x40f598
pop esi
mov ch, 0x70
mov esi, 0xb6708e2a
mov dh, 0x7b
sbb bh, byte [ebx + 0x58]
sub ch, al
xchg dword [esi + 0x7bb6b6b6], esi
xchg esi, eax
lcall 0xb650, 0xb5e8de97
mov dh, 0xb6
mov dh, 0x7c
fmul st(0)
mov esp, 0xbcc8e84b
pop edi
loope 0x40f662
popal
jp 0x40f5cd
retf 0x2a7b
jnp 0x40f62f
xchg byte [edx], dh
mov dword [0x984fb6d7], eax
fidiv word [ebp + 0x58993470]
xor al, 0xb5
mov ch, 0xb5
mov ch, 0x7c
pop eax
xor al, ch
xchg dword [esi - 0x6849494a], esi
fsubp st(0)
mov ch, 0x50
mov dh, 0xb6
mov dh, 0xb6
jl 0x40f603
enter 0x4bbc, 0xffffffffffffffe8
enter 0x5fbc, 0xffffffffffffffe1
popal
jp 0x40f600
jnp 0x40f662
xchg byte [edx], dh
mov dword [0x984fb6d7], eax
xor ah, byte [ebx - 0x67b04929]
fidivr word [edx + 0x68]
mov ch, 0x70
xor al, 0x99
cdq
pop eax
xor al, 0xb5
mov ch, 0xb5
mov ch, 0x7c
pop eax
xor al, ch
xchg dword [esi - 0x6849494a], esi
fsubp st(0)
mov ch, 0x50
mov dh, 0xb6
mov dh, 0xb6
jl 0x40f639
enter 0x4bbc, 0xffffffffffffffe8
enter 0x5fbc, 0xffffffffffffffe1
popal
mov esp, 0xbcc8e84b
pop edi
loope 0x40f6cb
jp 0x40f636
jnp 0x40f698
xchg byte [edx], dh
mov dword [0x984fb6d7], eax
fidivr word [edx + 0x58]
mov ch, 0x70
xor al, 0x99
pop eax
xor al, 0xb5
mov ch, 0xb5
mov ch, 0x7c
pop eax
xor al, ch
xchg dword [esi - 0x6849494a], esi
jnp 0x40f6eb
xor al, ch
jp 0x40f6cf
mov dh, 0xb6
mov dh, 0xb6
bound esp, qword [ebp + 0x65]
in eax, 0x63
in eax, 0x63
jnp 0x40f646
pop esi
xchg edi, eax
jnp 0x40f6ff
dec edi
pushfd
sub cl, byte [edx - 0x554a4a54]
movsb byte es:[edi], byte [esi]
mov ch, 0xb5
mov ch, 0x2a
mov ebx, 0xb5b6b664
invalid
mov dh, 0xb6
mov dh, 0xb5
push ds
ja 0x40f6ea
mov esp, 0xec18ea97
xlatb
mov dh, 0xb5
inc eax
mov esp, 0x78b6d7df
push ss
invalid
inc eax
mov esi, 0x78b6d7df
push ss
invalid
sahf
mov ch, 0xb5
mov ch, 0x62
mov ch, pe_nt_image_headers32
enter 0xffffffffffffb5b8, 0x40
adc bl, dh
xlatb
mov dh, 0x1c
jmp 0x40f6cb