Function at 0x401000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
push ebx
sub esp, 0x44
mov eax, 0x401023
mov ecx, 0
mov bl, byte [eax]
add bl, 0x90
mov byte [eax], bl
add eax, 1
add ecx, 1
cmp ecx, 0xd137
jne 0x40100e
sub byte [eax + 0x70], dh
mov cl, 0x70
sub dword [eax + 0x70], esi
jo 0x40109d
cli
mov al, dh
xor ebp, dword [edx + 0x31f388f8]
jno 0x40102b
xor byte [ecx - 0xf], dh
imul ebp, dword [edi - 0x69], 0x5be57070
sub byte [eax - 0x80], dh
jo 0x400fc5
mov al, 0x70
sub esi, dword [ebx]
xor esi, dword [ebx]
xor edi, ecx
jo 0x401073
xor esi, dword [ebx]
xor esi, dword [ebx]
stc
mov byte [eax], ch
inc ebp
dec edx
mov al, 0x70
xor byte [eax - 0xd], dh
xor al, 0xb4
outsd dx, dword [esi]
inc eax
xor ecx, ebx
xor ebx, dword [eax + 0x75]
jo 0x4010d2
jo 0x4010bd
jp 0x4010d6
jo 0x4010d8
sub dword [eax - 0x69], ecx
mov cl, 0x70
pop ecx
invalid
jo 0x4010e2
fsubr st(6)
out dx, al
xor byte [eax + 0x399f5870], 0x70
jo 0x401046
xor ebp, dword [ecx]
dec eax
xchg edi, eax
mov cl, 0x70
pop ecx
dec esi
adc eax, 0x75587070
jo 0x4010fc
jo 0x4010e7
jp 0x401100
jo 0x401102
sub dword [eax - 0x68], edi
mov cl, 0x70
pop ecx
mov cl, 0x25
jo 0x40110c
fcomp dword [eax]
xor byte [eax + 0x39755870], 0x70
jo 0x401070
sbb byte [eax + 0x755870b0], al
cmp dword [eax + 0x70], esi
mov al, 0x70
pop eax
jne 0x4010dd
jo 0x401116
leave
xor ebp, dword [ecx]
js 0x401043
mov cl, 0x70
pop ecx
and al, 0x15
jo 0x401122
pop eax
jne 0x401125
jo 0x401127
pop ecx
jp 0x40112a
jo 0x40112c
sub eax, ecx
lcall 0x7025, 0x875970b1
jo 0x40109f
enter 0xffffffffffffb19a, 0x70
pop ecx
xchg dword [0x42d87070], esp
jo 0x401136
fadd dword [edx - 0x80]
inc edx
xor byte [eax + 0x384b5870], 0x70
jo 0x40109a
mov al, 0x70
pop eax
dec ebx
cmp byte [eax + 0x70], dh
leave
xor ebp, dword [ecx]
enter 0xffffffffffffb19a, 0x70
pop ecx
sub eax, ecx
lcall 0x7015, 0xfa5970b1
jo 0x401135
jo 0x401131
cli
adc eax, 0x75587070
jo 0x401150
jne 0x40114f
jo 0x401151
jo 0x40113b
pop ecx
jp 0x401154
jo 0x401156
sub dword [eax], esi
scasb al, byte es:[edi]
mov cl, 0x70
pop ecx
pop ebp
xor byte [esi + 0x5d5970b1], ch
and al, 0x70
jo 0x4010c9
insb byte es:[edi], dx
xor byte [eax + 0x38215870], 0x70
jo 0x4010c4
mov al, 0x70
pop eax
and dword [eax], edi
jo 0x40116a
leave
xor ebp, dword [ecx]
xor byte [esi - 0x2fa68f4f], ch
adc eax, 0x75587070
sub dword [eax], esi
scasb al, byte es:[edi]
mov cl, 0x70
pop ecx
jo 0x40115b
rcl byte [0x75587070]
jo 0x40117a
jo 0x401165
jp 0x40117e
jo 0x401180
sub dword [eax - 0x52], esp
mov cl, 0x70
pop ecx
xor esp, dword [eax + esi*2]
jo 0x4010f3
xchg esi, eax
xor dword [eax + 0x38f75870], 0x33c97070
sub dword [eax - 0x52], esp
mov al, 0x70
pop eax
idiv dword [eax]
jo 0x401194
leave
xor ebp, dword [ecx]
pushal
scasb al, byte es:[edi]
mov cl, 0x70
pop ecx
jo 0x401185
dec esp
sbb al, 0x70
jo 0x401189
jne 0x4011a3
jo 0x4011a5
pop ecx
jp 0x4011a8
jo 0x4011aa
sub dword [eax + 0x5970b1af], edx
nop
scasd eax, dword es:[edi]
mov cl, 0x70
pop ecx
or dword [eax + esi*2], esp
jo 0x40111d
rol byte [ecx - 0x32a78f50], 0x38
mov al, 0x70
pop eax
int 0x38
jo 0x4011be
leave
xor ebp, dword [ecx]
sub dword [eax + 0x5970b1af], edx
nop
scasd eax, dword es:[edi]
mov cl, 0x70
pop ecx
jo 0x4011af
jl 0x40116d
jo 0x4011ca
pop eax
jne 0x4011cd
jo 0x4011cf
pop ecx
jp 0x4011d2
jo 0x4011d4
sub dword [eax], ebp
lcall 0x7024, 0xdf5970b1
sub byte [edx - 0x20a68f4f], bl
and al, 0x70
fbld tbyte [eax + esi*2]
jo 0x401147
ljmp 0x38a3:0x5870b081
sub dword [eax], ebp
lcall 0x7014, 0x525970b1
jo 0x4011d9
push edx
adc al, 0x70
jo 0x4011dd
jne 0x4011f7
jo 0x4011f9
pop ecx
jp 0x4011fc
jo 0x4011fe
sub eax, eax
scasd eax, dword es:[edi]
mov cl, 0x70
pop ecx
mov ch, 0x24
jo 0x401208
fcom dword [ecx + eax*4]
mov al, 0x70
pop eax
jns 0x4011d8
jo 0x401212
leave
xor ebp, dword [ecx]
shr byte [edi + 0x515970b1], 0x1d
jo 0x40121e
jo 0x401203
push ecx
sbb eax, 0x75587070
jo 0x401222
pop eax
jne 0x401221
jo 0x401223
jo 0x40120d
pop ecx
jp 0x401226
jo 0x401228
sub eax, edi
lcall 0x7024, 0x8b5970b1
mov esp, dword [eax + esi*2]
jo 0x40119b
xor dword ds:[eax + 0x374f5870], 0x33c97070
sub eax, edi
jo 0x40123c
leave
xor ebp, dword [ecx]
clc
lcall 0x701f, 0xca5970b1
jo 0x401231
jo 0x40122d
retf 0x701f
pop eax
jne 0x40124b
jo 0x40124d
pop ecx
jp 0x401250
jo 0x401252
sub dword [eax + 0x5970b197], edi
popal
and esi, dword [eax + 0x70]
fsubr dword [eax - 0x7f]
mov al, 0x70
pop eax
and eax, 0xc9707037
xor ebp, dword [ecx]
mov eax, 0x5970b197
jo 0x401257
aam 0x14
jo 0x401272
pop eax
jne 0x401275
jo 0x401277
pop ecx
jp 0x40127a
jo 0x40127c
sub eax, ebp
xchg edi, eax
mov cl, 0x70
pop ecx
call 0x59b0c3a9
aaa
and esi, dword [eax + 0x70]
fcom dword [edx + 0x5870b082]
sti
aaa
jo 0x401290
leave
xor ebp, dword [ecx]
sub eax, ebp
xchg edi, eax
mov cl, 0x70
pop ecx
call 0x59b0c3bf
jo 0x401281
stc
and byte [eax + 0x70], dh
pop eax
jne 0x40129f
jo 0x4012a1
pop ecx
jp 0x4012a4
jo 0x4012a6
sub dword [eax], ebx
xchg edi, eax
mov cl, 0x70
pop ecx
or eax, 0xd8707023
mov esp, 0x5870b082
sal dword [edi], 1
jo 0x4012b0
fdivr dword [edx + eax*4 - 0x2ea78f50]
aaa
jo 0x4012ba
leave
xor ebp, dword [ecx]
sbb byte [edi - 0x7fa68f4f], dl
adc al, 0x70
jo 0x4012af
jo 0x4012ab
adc byte [eax + esi*2], 0x70
pop eax
jne 0x4012c9
jo 0x4012cb
pop ecx
jp 0x4012ce
jo 0x4012d0
sub eax, edx
cdq
mov cl, 0x70
pop ecx
jecxz 0x40128b
jo 0x4012da
fsub st(6)
xor byte [eax + 0x37a75870], 0x70
jo 0x40123e
jo 0x4012e4
leave
xor ebp, dword [ecx]
rcr byte [ecx - 0x38a68f4f], 1
and byte [eax + 0x70], dh
pop eax
jo 0x4012d5
invalid
jne 0x4012f3
jo 0x4012f5
pop ecx
jp 0x4012f8
jo 0x4012fa
sub dword [eax - 0x67], esi
jo 0x401226
mov cl, 0x70
pop ecx
mov ecx, 0xd8707023
adc byte [edx + 0x7d5870b0], al
aaa
jo 0x40130e
jo 0x401304
fcom dword [eax]
xor byte [eax + 0x377d5870], 0x70
jo 0x401268
leave
xor ebp, dword [ecx]
jo 0x40123c
mov cl, 0x70
pop ecx
jo 0x4012ff
and byte [ecx], ah
jo 0x40131a
pop eax
jne 0x40131d
jo 0x40131f
pop ecx
jp 0x401322
jo 0x401324
sub dword [eax + 0x5970b199], esp
cdq
mov cl, 0x70
pop ecx
invalid
and esi, dword [eax + 0x70]
jo 0x40132e
fdivr dword [edx]
xor byte [eax + 0x36535870], 0x70
jo 0x401292
xor ebp, dword [ecx]
mov al, byte [0x5970b199]
jo 0x401329
pop ecx
stosd dword es:[edi], eax
and esi, dword [eax + 0x70]
pop eax
jne 0x401347
jo 0x401349
pop ecx
jp 0x40134c
jo 0x40134e
sub dword [eax], eax
scasb al, byte es:[edi]
mov cl, 0x70
pop ecx
and dh, byte gs:[eax + 0x70]
jo 0x401358
fsub dword [edx + eax*4 - 0x50]
jo 0x401346
sub dword [esi], esi
jo 0x401362
leave
xor ebp, dword [ecx]
add byte [esi - 0x27a68f4f], ch
adc esi, dword [eax + 0x70]
jo 0x401353
fcom dword [ebx]
jo 0x40136e
pop eax
fnstcw word [eax]
jo 0x401373
or dword [ecx], ebp
push 0x70
sub dword [edx + 0x70], ebp
jo 0x401379
imul edi, edx, 0xe630f432
hlt
xor dh, ah
je 0x4012bc
xor edx, esp
jb 0x401336
loop 0x401387
and byte [ecx - 5], dh
jno 0x401313
mov esp, 0xc4fb8094
cmp bl, 0xc4
les edx, [eax + edi*2 + 0x7aa4fdc6]
stosd dword es:[edi], eax
xchg esp, eax
js 0x4012e6
invalid
std
movsb byte es:[edi], byte [esi]
jp 0x4012cf
in eax, dx
mov bl, bh
les edx, [eax + edi*2 - 0x7f6b130d]
jo 0x401315
xchg esp, eax
js 0x40131f
in al, dx
xchg esp, eax
xor byte [eax - 0x1c], 0x75
cwde
jne 0x4012cb
je 0x4012b6
pop ebx
jae 0x4013a8
je 0x4012bb
mov cl, 0xab
in al, dx
pop esp
into
xor eax, esi
sti
in al, 0x94
js 0x40130d
invalid
pop eax
mov bh, byte [eax]
jo 0x4013bc
cmp byte [eax + 0x70], dh
leave
mov dword [0xee30f539], eax
cmp ebp, esi
xor dh, ch
jl 0x40134e
cli
les edx, [esp + edi*2 - 0x4e5e7b68]
stosd dword es:[edi], eax
cmp ah, ch
test byte [ecx - 0x13c7544f], ah
into
xor eax, esi
outsd dx, dword [esi]
in al, 0x94
js 0x4013bf
imul esi, dword [edi], 0x70
jo 0x40131c
rcr byte [eax - 0x14], 0x36
jo 0x4013e2
in al, dx
jo 0x4013e2
outsd dx, dword [esi]
in al, 0x94
cmp bl, 0x60
invalid
pop eax
aaa
jo 0x4013ee
xor al, 0x80
sti
into
xor eax, esi
outsd dx, dword [esi]
in al, 0x94
js 0x4013e3
inc edx
outsd dx, dword [esi]
outsd dx, dword [esi]
outsd dx, dword [esi]
sti
pushal
fidiv dword [ecx - 0x3a]
pop eax
sbb byte [edi + 0x6f], ch
outsd dx, dword [esi]
xor al, 0x7c
sti
into
xor eax, ebp
sti
pop esp
sub byte [eax + 0x58707084], dl
pop eax
push ebx
aaa
jo 0x40141d
ret
jo 0x40142e
hlt
hlt
std
cmc
push eax
pop ebx
outsd dx, dword [esi]
outsd dx, dword [esi]
fidiv dword [ecx - 0x40]
pop eax
inc ebx
xchg esi, eax
jo 0x401460
xor al, 0x88
std
cmc
push eax
pop ebx
outsd dx, dword [esi]
outsd dx, dword [esi]
fdiv st(0)
jo 0x40146d
jo 0x4013bf
outsd dx, dword [esi]
test dword [eax - 0x4f], esi
mov cl, 0x70
std
cmc
fsubr dword [edi + 0x6f]
outsd dx, dword [esi]
fiadd dword [edx + 0x50f5fdc0]
cmc
push eax
pop ebx
outsd dx, dword [esi]
outsd dx, dword [esi]
shr byte [edi - 0x7b], 0x68
mov al, 0xb1
jo 0x40140f
push 0x60b5f96f
outsd dx, dword [esi]
stc
mov ch, 0x60
in al, 0xd6
std
mov ebp, 0x6fc0c164
test dword [eax - 0x50], eax
mov cl, 0x70
inc eax
mov al, 0xb1
jo 0x40142a
sti
push 0x64ed73c3
ret
outsd dx, dword [esi]
test dword [eax + esi*4 - 0x4f], ebp
jo 0x40142d
pop eax
push 0x36
jo 0x4014dc
sti
mov ebp, 0xf8c1c668
invalid
pushal
ret