Function at 0x40f3eb
Capabilities:
Encode data using xor

Disassembly:
xor bh, ch
xor bh, ch
push eax
push eax
imul dword [eax - 0x5ab0b0b5]
jle 0x40f22d
xchg ebp, eax
popfd
jle 0x40f293
sbb byte gs:[esi + 0x53], 0x80
sbb byte [esi + 0x53], 0x80
jbe 0x40f299
inc ebx
loope 0x40f2b5
les edx, [eax + 0x50]
push eax
push eax
jle 0x40f29a
loope 0x40f21e
push eax
push eax
push eax
push eax
jle 0x40f2ab
jo 0x40f2c6
lds eax, [eax + 0x7e43057e]
fld qword [ebx + 0x4f]
sar dword [ebp + 0x50705b77], cl
pop ebx
jo 0x40f2a7
mov cl, 0xb5
outsb dx, byte [esi]
pushal
loopne 0x40f2ac
shl dword [ebp - 0x6a6afc82], cl
popfd
test eax, 0x247ee1ad
push eax
push eax
push eax
push eax
jbe 0x40f294
inc ebx
outsd dx, dword [esi]
xor ebp, dword gs:[esi + 0x1b]
push ecx
push eax
stc
push eax
dec edi
and eax, 0x33254f80
dec edi
and eax, 0xbc35f370
push esp
push eax
jle 0x40f2ee
cmp byte [esi + 0x51], 0x60
pop esi
rol dword [edi + 0x7e], cl
test dword [eax - 0x1e9faa8a], eax
jle 0x40f2dd
jbe 0x40f2ea
push ebp
pushal
loope 0x40f316
inc esp
push eax
push eax
push eax
push eax
jle 0x40f264
inc ebx
jbe 0x40f2de
loope 0x40f31a
les edx, [eax + 0x50]
push eax
push eax
int 0xc9
mov ebp, 0x50705b77
ja 0x40f309
jo 0x40f300
movsd dword es:[edi], dword [esi]
jle 0x40f2b6
add ebx, dword [esi + 3]
pop esi
add esi, dword [eax - 0x63]
jo 0x40f254
popfd
test eax, 0x657643ad
inc ebx
sbb al, 0x53
xchg ecx, eax
xchg ecx, eax
xchg ecx, eax
dec edi
and eax, 0xa0254f43
dec edi
and eax, 0x80254f90
dec edi
and eax, 0x2d48f370
push eax
push eax
pop esi
arpl ax, dx
jbe 0x40f340
and eax, 0x90254fa0
dec edi
and eax, 0x70254f80
dec eax
sub eax, 0x635e5050
sal byte [esi + 0x65], 1
xor ecx, ebp
leave
mov ebp, 0x7e33657e
out 0xc5, eax
pop edi
test eax, 0xe0217e43
cmp byte [esi - 0x77], 0x70
sbb al, 0x8b
leave
loopne 0x40f26c
jle 0x40f277
jo 0x40f30c
mov esi, ebx
leave
pop ss
dec edi
dec edi
stc
push eax
test eax, 0x4fa0294f
sub dword [eax + 0x214f50f9], eax
loopne 0x40f2e5
push eax
dec edi
and eax, esp
loopne 0x40f355
dec edi
sub dword [eax - 0x1f1fdeb1], edx
and eax, esp
loopne 0x40f300
pop esp
pop esp
sub eax, 0x635e5050
ror cl, 1
pop edi
movsd dword es:[edi], dword [esi]
jle 0x40f31c
pop esi
add esi, dword [eax]
popfd
push esi
inc ebp
jo 0x40f2fd
push esp
push eax
push eax
and eax, 0x1f4e3298
push ecx
push eax
jle 0x40f2b2
xor byte [esi + 0x54], 0x1c
push ebx
push ecx
not dword [edx]
push eax
push eax
push eax
pop esi
in eax, 0xb3
push eax
outsd dx, dword [esi]
ret
pop ds
push ecx
push eax
salc
xor edi, dword [edi - 0x7a79afa7]
mov bl, 0x1c
push edi
jbe 0x40f3b4
sar dword [esi + 0x65], cl
mov al, 0x76
jecxz 0x40f3d5
jecxz 0x40f3d5
xor byte gs:[esi + 0x65], 0xf3
jle 0x40f3c3
jle 0x40f3c3
sal byte [esi + 0x65], 3
jle 0x40f3c9
sal byte [esi + 0x65], 1
adc ebx, dword [esi - 0x1b]
and edx, dword [eax + 0x5e]
in eax, 0x33
push eax
pop esi
in eax, 0x43
push eax
jbe 0x40f35b
and esi, dword [esi + 5]
xor esp, ecx
salc
push eax
push eax
push eax
push eax
jbe 0x40f3e7
mov bl, 0x86
mov bl, 0xe1
ficom word [eax + 0x50]
push eax
push eax
outsd dx, dword [esi]
jae 0x40f3e4
push eax
push eax
push eax
jle 0x40f3fa
jo 0x40f40d
cmp dword gs:[esi + 0x65], 0xffffff90
jbe 0x40f403
xchg ebx, eax
push eax
sbb byte [eax + 0x50], dl
jle 0x40f3f8
push edx
push eax
push eax
push eax
jbe 0x40f411
mov dword [0x91836586], eax
jle 0x40f418
jo 0x40f404
dec edi
adc byte [edi - 0x5b], cl
mov dword [0xe55eb5b5], eax
jae 0x40f40f
pop esi
inc ebp
inc ebx
push eax
and dword [ecx + 0x5050c47e], ebp
push eax
push eax
push eax
jle 0x40f42a
jle 0x40f395
mov bl, 0x76
pop esp
loope 0x40f44b
les edx, [eax + 0x50]
push eax
push eax
push dword [esi + edi*2 + 0x65]
mov bl, 0xe1
ficom word [eax + 0x50]
push eax
push eax
jle 0x40f44c
jae 0x40f3a6
ja 0x40f44a
movsd dword es:[edi], dword [esi]
jle 0x40f3f1
xchg ebp, eax
popfd
inc ebx
jle 0x40f458
cmp byte [esi + 0x71], 0x70
sbb al, 0x85
xor bl, 0xa5
test dword [eax + 0x4f13a5f3], eax
dec edi
rep movsd dword es:[edi], dword [esi]
adc ecx, dword [edi + 0x4f]
jle 0x40f466
jo 0x40f481
push ecx
pushal
pop esi
shr ecx, cl
and dword [esi + edi*2 + 0x516f8065], edx
outsd dx, dword [esi]
push ecx
loopne 0x40f465
push eax
push eax
push eax
sbb al, 0x53
push ecx
inc dword [ecx]
invalid
add edi, edi
stc
stc
push esp
jle 0x40f484
or byte [edi + 0x11], 0xb0
jle 0x40f48a
or byte [edi + 0x11], 0xa0
jle 0x40f490
or byte gs:[edi + 0x11], 0x80
or byte [edi + 0x11], 0x80
stc
push eax
dec edi
and eax, 0x80657e90
dec edi
adc dword [eax - 0xc8fdab1], edx
wait
and eax, 0x635e5050
sar byte [esi + 0x65], 1
sbb byte [esi + 0x31], 0xe0
loopne 0x40f49c
push eax
and eax, 0x70254f7c
dec edi
and eax, 0x4b64f380
dec edi
dec edi
stc
push eax
stc
push eax
stc
push eax
stc
push eax
stc
push eax
xchg byte [ebp + 0x43], ah
inc ebx
xchg ecx, eax
int1
fcom qword [eax + edx*2 + 0x50]
out 0x4b, al
dec edi
dec edi
pop esi
arpl ax, ax
jle 0x40f4db
inc ebx
jle 0x40f43e
cmp byte [esi - 0x23], 0xc0
jle 0x40f47c
sar byte [esi - 3], 0xd0
dec edi
ror byte [edi - 0x2d], 1
sbb al, 0x53
rcr dword [ebx + edx*2], cl
push ecx
mov ebp, 0x7ea55f77
add edx, dword [ebp + 0x7eada99d]
inc ebp
jo 0x40f511
insd dword es:[edi], dx
nop
jle 0x40f4c4
xor byte [esi + 0x65], 0x43
jle 0x40f468
retf
inc dword [esi + ebx*2]
dec ebx
dec edi
and eax, 0x29bef364
push eax
push eax
jle 0x40f430
inc ebx
mov dword [esi + 0x6b], edi
std
push ebx
mov al, byte [0x857e575c]
nop
xor al, 0x71
pushal
inc ebp
cmp al, 0x71
jo 0x40f509
pop esi
dec ebx
dec edi
and eax, 0x80854f74
jle 0x40f490
jo 0x40f543
and eax, 0x80455e70
push eax
inc ebp
jnp 0x40f554
mov al, byte gs:[0x7e107669]
mov al, 0x76
jle 0x40f542
mov al, 0x76
mov al, 0x3c
int 0x80
sub eax, 0x291f3c60
test eax, 0x7e505029
imul edi, ebp, 0x53
pop ds
sub dword [ebx + esi*8 - 0x57], esp
sub dword [eax + 0x50], edx
jle 0x40f55b
std
push ebx
mov al, byte [0xcd43655c]
leave
mov ebp, 0x617e5f77
loopne 0x40f56f
test eax, 0x70e0217e
jbe 0x40f56e
mov dh, 0x10
push eax
push eax
jle 0x40f55f
mov dl, 0x50
push eax
push eax
jbe 0x40f57c
pushal
jle 0x40f527
push eax
push eax
jbe 0x40f52d
mov dl, 0x50
push eax
push eax
jle 0x40f58c
leave
pop edi
inc ecx
adc byte [eax + 0x50], dl
push eax
jle 0x40f57c
mov dl, 0x50
push eax
push eax
invalid
push ebx
pop edi
test eax, 0x5010b9f3
push eax
jle 0x40f56d
loopne 0x40f5be
cmp al, 0x12
mov dl, 0x50
push eax
push eax
and eax, 0x1075d1ed
push eax
push eax
jle 0x40f4e6
pushal
jbe 0x40f5d2
jb 0x40f513
mov dl, 0x50
push eax
push eax
push eax
leave
pop edi
xor al, 0x10
push eax
push eax
jle 0x40f5bf
mov dl, 0x50
push eax
push eax
push eax
push dword [esi + edi*2 + 0x71]
pushal
cmp al, 0x17
and dword [eax + 0x315e577e], ecx
pop esi
xor dword [eax + 0x50], esp
pushal
push eax
and eax, 0x42f7c917
and eax, 0x897e5050
pushal
jbe 0x40f5fe
jno 0x40f5ee
pushal
leave
pop edi
movsd dword es:[edi], dword [esi]
jle 0x40f596
pop esi
add esi, dword [eax + 0x59bf33d6]
salc
xor edi, dword [edi - 0x1aa1afa7]
push eax
pop ecx
push eax
pop esi
in eax, 0xf3
push eax
xchg byte [ebp + 0x7e571cf3], al
test dword [eax + 0x76], esi
adc edi, dword gs:[esi + 0x65]
xor byte [esi + 0x65], 0x23
jle 0x40f617
jbe 0x40f614
and edi, dword [esi + 0x65]
mov al, byte gs:[0x3656f51]
mov al, byte [0x3656f51]
jmp 0x40f5d4
jbe 0x40f625
inc ebx
inc ebx
loope 0x40f599
push eax
push eax
push eax
push eax
jbe 0x40f62e
xrelease xchg byte [ebp - 0xd], ah
loope 0x40f5ad
push eax
push eax
push eax
push eax
dec edi
and eax, 0x254f95b0
nop
push ss
and eax, 0x737e5050
push eax
push eax
jle 0x40f654
jle 0x40f648
loope 0x40f5c4
push eax
push eax
push eax
push eax
jle 0x40f643
ja 0x40f64d
xchg ecx, eax
loope 0x40f640
and al, 0x50
push eax
push eax
push eax
xchg byte [ecx - 0x20], ah
cmp ah, 0xe1
loopne 0x40f57e
cld
loope 0x40f5dd
sbb byte [ebp - 0xf895257], 0x7e
popfd
test eax, 0x7ef076ad
salc
xor edi, dword [edi + 0x671c5059]
xchg ecx, eax
dec edi
and eax, 0x43656f43
outsd dx, dword [esi]
inc ebx
dec edi
dec edi
dec edi
dec edi
xchg byte [ebp + 0x23], ah
loope 0x40f5fa
push eax
push eax
push eax
push eax
pop edi
xchg ecx, eax
loope 0x40f673
and al, 0x50
push eax
push eax
push eax
push eax
xchg byte [ecx - 0x20], ah
cmp ah, 0xe1
loopne 0x40f5b1
loope 0x40f610
sbb byte [ebp - 0xf895257], 0x7e
popfd
test eax, 0x7ef076ad
salc
xor edi, dword [edi + 0x671c5059]
xchg ecx, eax
jbe 0x40f627
adc ecx, dword [edi + 0x25]
inc ebx
outsd dx, dword [esi]
inc ebx
dec edi
and eax, 0x43656f43
inc ebx
dec edi
dec edi
dec edi
dec edi
xchg byte [ebp + 0x23], ah
loope 0x40f630
push eax
push eax
push eax
push eax
pop edi
xchg ecx, eax
loope 0x40f6a9
and al, 0x50
push eax
push eax
push eax
xchg byte [ecx - 0x20], ah
cmp ah, 0xe1
loopne 0x40f5e7
sbb byte [ebp - 0xf895257], 0x7e
popfd
test eax, 0x7ef076ad
salc
xor edi, dword [edi + 0x671c5059]
sbb al, 0x67
xchg ecx, eax
jbe 0x40f6dd
adc ecx, dword [edi + 0x25]
inc ebx
outsd dx, dword [esi]
inc ebx
dec edi
dec edi
dec edi
dec edi
xchg byte [ebp + 0x23], ah
loope 0x40f666
push eax
push eax
push eax
push eax
pop edi
jle 0x40f614
and esp, ecx
jbe 0x40f617
push eax
push eax
push eax
push eax
mov ch, 0xcd
int 0xc9
mov ebp, 0x95c5e77e
pop edi
jle 0x40f628
adc ebx, dword [edi + eax*4]
test byte [edi], 0x4f
dec edi
dec edi
test edi, 0xf34f4f4f
js 0x40f678
push eax
push eax
dec edi
and eax, esp
pushal
aad 0xbd
push eax
push eax
dec edi
and al, 0x62
mov ebx, 0x97f35059
add byte [eax + 0x50], dl
int1
dec edi
push eax
push eax
push eax
dec edi
xchg ebx, eax
pop esi
arpl word [eax + 0x163f15f], ax
arpl word [ecx], ax
pop ecx
push eax
dec edi
movsb byte es:[edi], byte [esi]
sbb byte [ecx + 0x53665059], 0x21
test al, 0xf1
and al, byte [ecx]
pop ecx
cdq
pop ecx
push eax
push bx
and dword [eax + 0x590122f1], ebp
push eax
xchg ecx, eax
dec edi
movsb byte es:[edi], byte [esi]
nop
cdq
pop ecx
push eax
push bx
and dword [eax + 0x4f], ebp
and eax, esp
pushal
dec edi
xchg ebx, eax
pop edi
dec edi
and eax, esp
pushal
xchg edi, eax
dec edi
dec edi
dec edi
mov ch, 0x4f
and eax, esp
pushal
dec edi
movsb byte es:[edi], byte [esi]
xor dl, byte [ecx - 0x67cafa7]
jo 0x40f705
cmp ecx, 0x70
push es
push es
lea edx, [eax + 0x50]
mov ch, 0x5f
stc
jo 0x40f70e
or dword [ecx + 0x5fb55050], 0xffffffa9
jle 0x40f737
invalid
leave
pop edi
test eax, 0x70e0217e
sbb al, 0x53
dec dword [esi + 0x7e942553]
mov byte [esi + 0x77], ah
and dword [eax + 0x4f], ebx
xchg edi, eax
pop esi
imul esp, dword [eax + 0x3c], 0x21
loopne 0x40f6d5
sbb edi, edi
leave
pop edi
jle 0x40f6dc
loopne 0x40f7bd
test eax, 0x8b3c2b1c
and eax, 0x5c67f3c4
push eax
push eax
test eax, 0xa9a9a9a9
outsd dx, dword [esi]
push eax
test al, 0x50
push eax
push eax
or cl, byte [eax + edx*2 + 0x50]
pop esi
arpl word [eax - 0x364e5707], sp
pop edi
salc
mov al, byte [0x3c505d84]
imul esp, dword [ecx], 0xffffffbb
jbe 0x40f7e0
sbb al, 0x53
leave
pop edi
jle 0x40f7f3
loopne 0x40f7f4
test eax, 0x6b3c2b1c
and eax, 0x5c8af3c4
push eax
imul esp, dword [0x5c8af3c4], 0x50
push eax
test eax, 0xa9a9a9a9
outsd dx, dword [esi]
push eax
test al, 0x50
push eax
push eax
sub eax, 0x5e50504c
arpl word [eax - 0x364e5707], sp
pop edi
xor al, 0x24
mov al, byte [0x21505d84]
mov edi, 0x84d0847e
push eax
and dword [edi - 0x7b2f7b82], edi
pop ebp
push eax
jbe 0x40f838
sbb al, 0x53
leave
pop edi
pop esi
inc esp
adc eax, dword [ecx]
pop ecx
push eax
push eax
and dword [eax + 0x590113f1], edi
push eax
sahf
and dword [eax + 0x50], edx
push bx
push ebx
mov ch, 0x21
jl 0x40f834
and eax, esp
pushal
dec edi
movsb byte es:[edi], byte [esi]
adc eax, dword [ecx]
pop ecx
push eax
mov ch, 0xf3
sbb eax, 0x73f15050
mov eax, dword [0x2f15059]
mov eax, dword [0x28f35059]
push eax
int1
jae 0x40f798
pop ecx
push eax
int1
add ah, byte [ecx + 0x28f35059]
dec edi
dec edi
dec edi
push bx
mov ch, 0xb5
and eax, 0xf1ada9a1
sub al, ch
push ebp
push eax
jmp 0x4a90471d
pop ss
pop esi
inc esp
and eax, edi
clc
pop ebp
push eax
push eax
int 0xc9
and dword [ecx + esi*8 + 0x505df821], edi
xrelease lock and dword [eax + 0x50], edx
push bx
mov ch, 0x21
cmp cl, 0x50
stc
pop eax
stc
push eax
dec edi
movsb byte es:[edi], byte [esi]
and eax, edi
pop ebp
push eax
sbb al, 0x53
pop edi
stc
xor cl, 0xd3
push es
int1
rol dword [esi], cl
pop ecx
push eax
wait
rcl byte [eax + 0x50], 0xf9
jo 0x40f860
cdq
mov dword [eax + 0x50], edx
mov ch, 0x5e
in eax, 0x43
push eax
sbb al, 0x2b
imul esi, dword [esp], 0x505d84a1
and ebp, edi
jbe 0x40f8a7
xchg ecx, eax
test byte [ebp + 0x50], bl
jp 0x40f8ee
nop
fiadd dword [ecx + 0x5e505d84]
inc ebp
adc byte [eax + 0x25], 0x6d
dec edi
and al, 1
clc
pop ebp
push eax
cmp edi, eax
push eax
push eax
jle 0x40f8d5
dec edi
and al, 0xf1
clc
pop ebp
push eax
pop es
clc
push eax
push eax
mov ch, 0xb5
jbe 0x40f916
jecxz 0x40f919
dec edi
and dword [eax + 0x60e3055e], ebp
xor al, 0x45
jecxz 0x40f8d7
test byte [esi + 0x65], bh
jecxz 0x40f941
push eax
push bx
and dword [ebx], ecx
dec edi
xchg ebx, eax
invalid
push eax
imul ecx, dword [ebx + 0x4f], 0xe3f1b54f
imul ecx, dword [ebx + 0x4f], 0xe3f1b54f
mov eax, dword [0xc3325059]
mov eax, dword [0x28f35059]
dec ebx
dec edi
dec edi
mov ch, 0x6f
inc ebx
inc ebx
dec ebx
dec edi
dec edi
dec edi
int3
dec edi
sbb al, 0x2b
imul ebx, dword [esi + 0x45], 0x70215090
stc
nop
push eax
and dword [eax - 7], esi
jo 0x40f913
outsd dx, dword [esi]
adc dword [eax + 0x50], 0xa9f35fb5
rcl byte [eax + 0x50], 0x5f
stc
push eax
stc
push eax
dec edi
and eax, esp
xor bl, 0xe4
dec edi
dec edi
dec edi
pop esi
arpl word [eax - 0x6af06a1], ax
push esp
dec edi
and eax, esp
xor bl, 0xa0
dec edi
dec edi
dec edi
pop esi
arpl word [eax - 0x6ab06a1], ax
push eax
stc
push eax
dec edi
dec edi
dec edi
pop esi
arpl word [eax - 0x6ab06a1], ax
push esp
stc
push eax
sub ecx, dword [ebx + 0x4f]
dec edi
pop esi
arpl word [eax - 0x330c56a1], ax
clc
push eax
push eax
jle 0x40f987
test eax, 0x50b135f3
push eax
test eax, 0x502541f3
push eax
test eax, 0x5040bef3
push eax
test eax, 0x5025e9f3
push eax
test eax, 0x5025a9f3
push eax
test eax, 0x501d69f3
push eax
test eax, 0x4f69d0f3
dec edi
test eax, 0x5015aff3
push eax
int1
inc esp
aaa
push ecx
push eax
push edx
hlt
jmp 0xa99149b2