Function at 0x66eac2
Capabilities:
Encode data using xor

Disassembly:
invalid
mov esi, dword [ebp + 0xc]
pushal
pushal
mov dword [esp + 0x3c], eax
call fcn.0065d2a5
xchg ecx, eax
call 0x10672c04
xchg ebx, eax
add esp, dword [edx + 0x5ae54784]
sbb dword fs:[ebx - 0x352e152], ebp
sar esi, cl
test eax, 0x37528d26
std
add al, bh
fadd st(3), st(0)
adc al, 0xad
lds esi, [edx - 0x67f891e7]
cmp al, 0x49
xor cl, byte [esi + 0x66]
loop 0x6538c1
shl ah, 1
shl bh, 1
dec esp
cmp esi, dword [ebp - 0x37f7b97f]
sti
mov ebx, 0xc9ee36f0
inc edx
xor dword [ecx - 0x4c], esp
mov dl, 0xed
cli
xchg ebp, eax
sahf
and dword [edx], ebp
push ecx
mov ecx, dword [edx]
imul ebx, ecx, 0x3ce6d6a1
aaa
inc edi
mov esi, 0xb7abc89b
jbe 0x653976
popfd
les esp, [eax + ebp*2]
sar byte [esi - 0x4e3afe5d], 1
mov dh, 0xcf
mov ah, 0xd0
inc ecx
sahf
imul esi, dword [eax], 0x7a
invalid
push es
mov ch, 0x4b
pop ebx
imul eax, dword [esi], 0x2ca7d949
nop
cmpsd dword [esi], dword es:[edi]
sub al, 0x90
pop edi
sbb bh, byte [edx]
popal
push edx
fidiv word [edx]
out 0x62, eax
jge 0x65397e
add dword [esi - 0x4ff05903], ebx
out 0x5a, al
sub dword [ebp + 7], eax
movsb byte es:[edi], byte [esi]
stosd dword es:[edi], eax
dec esi
xchg dword [ebx - 0xb41f669], esi
lds esi, [ecx - 0x3e24a303]
cmpsb byte [esi], byte es:[edi]
ret 0x4d3d
pushal
stc
mov dword [ebp - 0x10], ecx
ror ecx, 1
mov ecx, dword [ebp + 0xc]
push ebp
test esi, edx
jmp 0x65d8ea
push ecx
not al
bt di, 0xd
ror al, 1
bt dx, bp
mov byte [esp], dh
cmp al, byte [edi]
cwde
lea edi, [edi + 1]
pushfd
seta ah
mov eax, dword [esp + 0x28]
jmp 0x6692b2
pushal
stc
bt ecx, 0x1b
call fcn.00671f5b
mov dword [ebp - 8], ecx
mov byte [esp + 4], 0xb
push ecx
pushal
lea esp, [esp + 0x2c]
jmp 0x66188b
pushfd
pushfd
lea esp, [esp + 8]
je 0x674dea
bts cx, ax
stc
add edx, eax
bsf cx, bx
bt ebp, 0x1c
shrd ecx, edx, cl
adc ch, dh
mov ecx, dword [esi + 0x7c]
push 0x78791726
mov byte [esp], ch
bt sp, sp
jmp 0x673d35
cmp ecx, 0xffff
jmp 0x6670c1
mov byte [esp + 4], cl
lea esp, [esp + 8]
jb 0x66185d
jmp 0x677a46
push 0xba6eb233
lea esp, [esp + 0x28]
jbe 0x803581
sbb bh, 0x9a
bswap di
and di, 0x279e
xchg cx, di
mov edi, dword [edx + 0x24]
neg ecx
movzx ecx, bl
xchg bx, cx
rol cx, 4
add edi, eax
bsf bx, cx
mov ebx, dword [edx + 0x20]
btc ecx, 0x1e
add ebx, eax
movzx cx, dl
clc
and cx, di
mov dword [ebp - 8], 0
pushfd
cmp ch, ch
bsr cx, dx
mov ecx, dword [edx + 0x18]
clc
stc
cmp ecx, dword [ebp - 8]
jmp 0x6674cf
jmp 0x7bef31
lea esp, [esp + 0x2c]
ja 0x679ec7
push ebx
push 0x996f57b7
jmp 0x65efdb
inc al
add esp, 0x48
jbe 0x66ee58
test cl, al
neg al
stc
bt di, 9
stc
clc
not al
clc
ror al, 1
bt ebp, 6
test bh, cl
cmp al, byte [edi]
mov ax, 0x7629
mov eax, 0xa56f2bea
setbe al
lea edi, [edi + 1]
cwde
pushfd
not al
pushal
mov eax, dword [esp + 0x24]
mov word [esp + 4], sp
mov byte [esp + 0x1c], 0x94
mov byte [esp], dh
lea esp, [esp + 0x28]
ja 0x679ec7
push eax
mov word [esp], 0x89da
push dword [esp]
mov dword [esp], eax
lea esp, [esp + 8]
jb 0x66185d
pushal
pushfd
mov byte [esp + 8], 0x54
cmp byte [edi - 1], 0
pushal
call fcn.00668bdb
cmp ebp, dword [edi + edi + 0x40]
sbb dword [ebx], ebx
test ah, dh
scasb al, byte es:[edi]
add ebx, esi
pop ecx
pop ebp
mov esi, 0x632c7b33
insb byte es:[edi], dx
xor eax, 0xc3ecdb56
sbb al, 0xd5
invalid
test ch, cl
stc
pushal
neg al
jmp 0x65809f
pushfd
lea esp, [esp + 4]
jne 0x65d9e8
movsx edi, cl
mov edi, dword [edx + 0x24]
pushal
mov byte [esp + 4], al
jmp 0x7c1de8
add ecx, edx
cmp cx, 0x1d41
mov byte [esp], 0x75
bt dx, ax
sub esp, 0xfffffffc
jbe 0x655556
mov dword [ebp - 0x10], ecx
and cl, 0x44
bsr cx, di
or ecx, ebx
or cl, al
mov ecx, dword [ebp + 0xc]
jmp 0x6782d8
push ecx
mov dword [esp], esp
push eax
mov byte [esp], bh
cmp byte [edi - 1], 0
pushfd
pushfd
pushfd
lea esp, [esp + 0x14]
jne 0x65d9e8
btc edi, 0x19
shld di, di, cl
rol di, 0xa
mov edi, dword [edx + 0x24]
call fcn.006728cb
pushal
lea esp, [esp + 0x2c]
jo 0x65d6eb
push 0xf9ad718c
lea esp, [esp + 4]
je 0x674dea
jp 0x659b8a
add edx, eax
push 0xb6c1d731
bsr ecx, ebx
not cl
add cl, 0xf3
mov ecx, dword [esi + 0x7c]
pushfd
add ecx, edx
cmc
pushal
mov byte [esp + 4], 0x81
mov dword [ebp - 0x10], ecx
sar ch, cl
mov ecx, dword [ebp + 0xc]
call fcn.006795ec
cmc
jl 0x677385
cmp byte [edi - 1], 0
jmp 0x670e1e
push edx
call fcn.0065affe
stc
pushal
call fcn.00659f35
popal
inc eax
mov ebx, 0xa3ccddf6
adc esp, dword [edx - 0x490a557d]
push cs
int 0x24
xchg ebx, eax
dec esp
cmp eax, 0x30b30487
mov dword [esi - 0x45], ecx
salc
idiv byte [ecx + 0xda6298a]
ljmp 0xfd16
lea esp, [esp + 4]
jbe 0x674dea
sal si, cl
sub ecx, 1
and esi, 0x93ad2a2d
movzx si, dl
pushfd
mov dword [ebp - 4], ecx
shr cx, cl
mov ecx, dword [ebp - 8]
sar di, cl
add ecx, dword [ebp - 4]
lea edi, [edi*4 + 0xae818bf]
pop esi
not di
shr ecx, 1
xchg di, si
not di
mov edi, dword [ebx + ecx*4]
bsr esi, ebx
and si, dx
add edi, eax
jmp 0x6538f1
pushfd
add edi, eax
clc
mov word [esp], di
pushal
mov byte [esp + 4], ah
movzx ecx, word [edi + ecx*2]
shl edi, cl
rcl di, 5
movsx edi, dl
mov edi, dword [edx + 0x1c]
mov byte [esp], dl
call fcn.0065a088
add al, ch
xor bl, bh
call 0x3af6fed5
test eax, 0x810b5ce3
cmp al, 0x5f
stc
mov dh, 2
popal
add al, 7
mov dh, 0xb5
xchg dword [ebp + ebx*4 - 6], eax
cmpsd dword cs:[esi], dword es:[edi]
imul ebp, dword [ebx - 0x2e], 0xd741b5e2
salc
or byte [0x17bce46d], ah
movsb byte es:[edi], byte [esi]
pop ds
jo 0x7c1e60
lodsb al, byte [esi]
pop es
nop
pop es
js 0x7c1e56
mov ah, 0xfb
mov esp, 0x2d9c4bb9
inc esp
enter 0xffffffffffffde23, 0x1d
xchg esp, eax
aas
mov edx, 0x31158201
add edi, dword [eax - 0xe]
shr esp, cl
xchg ebp, eax
movsd dword es:[edi], dword [esi]
out dx, eax
cmc
sbb esp, dword [ebp + 0x52]
push edx
cwde
les eax, [esi + 0x710f02c2]
and ch, byte [esi]
lodsd eax, dword [esi]
int 0xc1
invalid