Function at 0x1006117b
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [eax], eax
mov eax, dword [esi]
mov dword [eax + 4], eax
and dword [esi + 4], 0
cmp ecx, dword [esi]
je 0x10061381
pushfd
test byte [0x10061218], 0xb5
jne 0x10061219
mov esp, 0xf399753a
add dword [eax + 0x16], esi
xchg esi, eax
cmp dword [0xbe998397], ecx
jo 0x100611e4
sti
inc ecx
out dx, al
inc esp
cmp ebx, esi
xor byte [ebp + 0x66], cl
and dword [ebx], ecx
outsb dx, byte [esi]
adc edi, dword [esi - 0xd]
clc
pop eax
mov al, byte [0x4757b78b]
sar esp, 0x9c
pushfd
add byte [ecx + esi + 0x7030f0a4], ch
mov bl, 0x1c
push ds
sbb dword [eax + 0x25b5c964], esi
add dword [edi - 0x7ed5cf7e], ebp
ja 0x100611c9
adc dword [edx + 0x16], ebp
push 0x16
push ss
test eax, 0xbea2d992
sub ah, byte [eax + 0x614888bf]
sbb ch, al
mov ah, 0xb0
out 0x1f, al
movsd dword es:[edi], dword [esi]
sub al, byte [ecx - 0x8d9c69b]
rol byte [edx + 0x13a8c41a], cl
adc ecx, edx
pop eax
dec ebx
xor dword [edx - 0x49], esi
lea edi, [edx + 0x6ac3d27e]
stosb byte es:[edi], al
and al, 0x3b
pop es
mov eax, dword [0x8998d90d]
popfd
push edi
pushfd
test byte [0x1006124f], 0xdd
jne 0x10061350
fisttp qword [edi]
test dword [edi], esp
add dword [eax], eax
add byte [eax + edi*8], bh
cmp al, 0xf8
outsb dx, byte [esi]
push edx
jbe 0x10061248
outsd dx, dword [esi]
cmpsd dword [esi], dword es:[edi]
jecxz 0x1006125c
push ecx
inc edx
mov ecx, 0xdf294384
jns 0x10061282
in eax, 0x57
mov gs, word [esi + ebx*2 - 0x50]
cmc
cmp al, 8
push ss
xor ch, 0xf6
push 0x5b
imul byte [edx + 0x5b]
jns 0x100611e3
inc ebp
loop 0x10061222
imul esp, dword [eax + eax*4], 0x91d999a5
sbb eax, 0x35f2b14d
cdq
fst dword [ecx - 0xd4eb2e3]
xor eax, 0x341d2e24
sahf
popfd
wait
and al, 0x2e
sbb eax, 0x9b9d9e34
push ss
clc
mov eax, 0xc39b6f13
mov esi, 0x7be0aa7a
jnp 0x10061294
adc ebp, dword [edi - 0x65]
ret
push es
insb byte es:[edi], dx
adc al, 0x27
test byte [esi + 0x2f], dl
push ds
xor byte [esi + 0xbb07023], bl
lahf
jbe 0x10061266
add al, 1
ja 0x10061254
sub dword [ebx], esi
add bl, byte [edi]
sbb cl, byte [eax]
salc
or dh, dl
add ebx, dword [esi - 0x7fdfb775]
adc eax, 0x2a425bb7
in eax, dx
mov bh, 0x5b
inc edx
sub ch, ch
cmp al, 5
pop esi
mov cl, 0x30
sal byte [eax + ebx - 0x54], cl
inc edx
inc ecx
xchg ebx, eax
add al, 0x42
sbb eax, 0x76cb4289
sbb eax, 0xfd77e603
test byte [eax], bl
dec ebp
fdivr qword [esi + 0x3c8070dd]
lodsd eax, dword [esi]
stc
push eax
pop ecx
xchg edx, eax
jnp 0x1006131a
fld dword [ebx + edx]
lds edx, [esi + 0x2e077bc4]
mov cl, 0xd9
xor eax, 0x9a503d72
cmp al, 0xd7
sbb byte [edi + 0x6d21b437], 0x3b
xlatb
push esp
dec ebp
push ebp
xlatb
mov ah, 0x87
dec ebx
inc edi
or al, 0xd9
dec edx
test eax, 0x30748407
dec ecx
mov edi, 0xad854f25
daa
adc ebp, esp
lds ebx, [edi - 0x3e]
mov esp, 0xe7a22c83
pop edi
out 0xbf, al
ja 0x100612ba
stc
or eax, 0x45b193e6
test byte [edi], bh
jb 0x1006128b
test byte [ecx - 0x32], bl
in al, 0xfb
jno 0x100612be
insb byte es:[edi], dx
mov eax, dword [0x6df730c9]
mov cl, 0x39
mov esp, 0x77c9deac
les ebp, [esi]
inc edi
or eax, 0x103de789
or eax, 0x6c485622
xchg byte [ecx + 0xbe5beb6], bh
mov dl, 0x35
jns 0x1006139f
pop esp
add dword [eax - 0x79], edx
mov dword [0x4c1b7a15], eax
jnp 0x100612fc
sbb dword [eax - 8], 0x17
fldenv [edi + 0x41]
adc al, 0xdc
pop ds
test ecx, ecx
inc edx
das
popfd
mov edi, dword [ecx]
push ecx
call fcn.1011bd3a
pop ecx
mov ecx, edi
cmp edi, dword [esi]
jne 0x10061351
pop edi
pushfd
test byte [0x1006137f], 0xe9
jne 0x10061380
adc byte es:[esi], bh
cmp al, 0x79
mov bl, 0xe
test dword ds:[ebx - 0x833f0af], ebp
dec esi
inc edi
and al, dh
sbb al, 0xf5
popfd
pop esi
ret
pushfd
push esi
pop es
mov al, byte [0x9f4772a7]
cli
add al, 0x7c
jae 0x10061341
mov ebp, 0x9c593c12
out 0xfe, al
mov eax, 0x432f94f0
movsb byte es:[edi], byte [esi]
pop ebx
add dword [ebx], edi
sal dword [0xaf485e4a], 1
shl byte [edi - 0x2a0108e0], 0xa8
salc
das
pop ecx
dec eax
insb byte es:[edi], dx
fdivr dword [esp + ebp*8 + 0x41]
add byte [0x5f556928], dl
cmp al, 0x80
bound esp, qword [0xacb2128a]
jecxz 0x100613c7
invalid
jl 0x1006143c
xor al, 0x4f
dec edi
lodsd eax, dword [esi]
in al, dx
popfd
push esi
mov esi, ecx
mov eax, dword [esi]
mov ecx, dword [eax]
mov dword [eax], eax
pushfd
test byte [0x1006142b], 0xf2
jne 0x1006142c
jecxz 0x10061408
stc
int3
or al, 0x2f
in al, 0xc2
cmp esi, dword [edi + 0x6e3e48ed]
xchg edi, eax
stc
xchg esp, eax
dec ebx
xchg ebp, eax
jb 0x10061432
push edi
out dx, al
fmulp st(5)
mov dword [0x5c2b465a], eax
imul ebx, dword [edx - 0x6a0795d1], 0x45
cmp ch, 0x79
popfd
mov eax, dword [esi]
mov dword [eax + 4], eax
pushfd
test byte [0x10061471], 0x32
jne 0x10061472
or eax, 0xfe750ee4
adc byte [ebx - 0x49310577], ch
fdiv st(3), st(0)
pop es
les esp, [ebp - 0xc59157]
aam 0x4e
test eax, 0xd4ff3a6e
dec esi
push eax
mov cl, 0x86
into
pop ds
inc edx
inc esp
mov esi, 0xd522fdef
dec esp
test byte [esi + edx*2 - 0x5d], cl
scasd eax, dword es:[edi]
mov ebx, dword [edi - 0x29]
adc ch, al
mov byte [edi - 0x54678c9f], dh
int 0xec
popfd
and dword [esi + 4], 0
cmp ecx, dword [esi]
je 0x1006162c
pushfd
test byte [0x10061563], 0x78
je 0x10061564
clc
fmulp st(3)
jle 0x100614b9
xchg edi, eax
xchg ebp, eax
in eax, 0x32
sysenter
das
add esp, ebp
mov dword [eax], ebp
movsb byte es:[edi], byte [esi]
fdiv st(4), st(0)
sbb edx, dword [ecx + 0x37bb5ab8]
mov dword [esp + eax*8 - 0x43], edi
cli
in al, 0xdd
aaa
bound eax, qword [edx + ebp + 0x6c]
xchg edi, eax
jne 0x1006144d
xor dword [edx + 4], edx
movsd dword es:[edi], dword [esi]
std
mov al, 0x91
clc
pop esi
sal ch, 0xfb
mov al, byte [0x4c10d9ca]
dec esp
adc byte [eax - 0x64ae4f11], 0xcd
cmp byte [ebx], ah
or byte [ebp + 0x76], 0x61
push edi
aas
pop ecx
jl 0x100614c5
adc ebp, dword [esi - 8]
and ecx, eax
loop 0x10061496
add dword [edi + 0x45f28713], 0xa35a98bd
sub byte [ecx - 0x71cd900d], dl
arpl word [esi - 0x68], sp
sahf
imul ecx, dword [edx], 0x3a230caf
jb 0x100614ae
int3
adc bh, byte [ebp - 0x382130dc]
pop esi
cmp eax, 0xc50d6be5
add al, 0xfa
popfd
sub al, 0x9d
imul ecx, dword [0x9dfa04c5], 0x2c
popfd
sbb byte [edx + 0x23], dl
sub ebp, esi
or al, 3
popfd
push edi
mov edi, dword [ecx]
pushfd
test byte [0x10061594], 0xe8
cmp dword [esi + esi*8 + 0x6159405], ebx
adc al, ch
jne 0x10061595
push ds
adc al, byte [edx - 0x67]
mov ah, byte [0x468a19c6]
scasd eax, dword es:[edi]
add dword [eax - 0x6c30a189], 0x7b1c4e7b
or byte [edi + 0x5c], al
cld
call 0xd30491ba
jb 0x10061555
ja 0x10061567
popfd
push ecx
call fcn.1011bd3a
sahf
cmpsd dword [esi], dword es:[edi]
or eax, dword [eax]
pop ecx
mov ecx, edi
pushfd
test byte [0x10061621], 0xa9
jne 0x10061622
push es
adc byte [ecx + 0x76837975], ch
mov dl, 0xbb
xor dword [esi - 0x4e], 0xffffffbb
dec edi
cdq
stosb byte es:[edi], al
mov dword [0x7695da5], eax
push eax
mov bl, 0x87
pop ebp
dec ebx
stc
push edi
sahf
stc
jb 0x1006154c
enter 0xffffffffffff9313, 0xffffffffffffffa8
mov byte [ecx - 0x37], dl
sahf
add dword [ebx - 0x50], eax
mov edi, 0x74744ce6
ror byte [esi - 0x3aeae686], cl
sbb al, 0x13
fiadd dword [esi - 0x15]
or esp, dword [eax + eax]
xchg ebp, eax
js 0x10061572
je 0x100615a4
invalid
dec eax
lodsb al, byte [esi]
dec edx
jecxz 0x10061598
pop di
sahf
cwde
das
inc ecx
jl 0x100615d0
in al, dx
cmp dh, al
jl 0x1006161d
dec eax
rol dword [ebp + ecx*2 - 0x18f2d4a5], 0x55
aam 0xf
js 0x10061655
and eax, 0x870e48ad
fbstp tbyte [edi]
in al, dx
cmpsd dword [esi], dword es:[edi]
dec esp
movsd dword es:[edi], dword [esi]
inc esi
xor eax, 0xdbba9cf5
mov al, byte [0xf5eb2cf8]
add ax, 0xb9a1
pop edx
mov dword [ebx], ebp
push eax
push es
dec ecx
popfd
cmp edi, dword [esi]
jne 0x10061566
pop edi
pop esi
ret
test al, 0x8a
scasd eax, dword es:[edi]
test byte [ebx - 0x2d], dl
mov ch, byte [edi - 0x2cac7b9a]
leave
push 0x420aa3
stosb byte es:[edi], al
sbb byte [ecx + 0x4d], cl
sub bl, byte [ebx]
xor byte [0x56d0e78e], bl
cli
dec ebx
dec esi
and eax, 0x289e27ce
inc ecx
or ebx, esp
clc
sub al, 0x61
xchg dword [esi - 0xeddb1c0], edx
inc eax
dec esi
and dh, cl
mov fs, word [esi]
insb byte es:[edi], dx
mov esi, 0x26055f71
add eax, 0x4b235af1
sbb al, 0x60
int1
pop edx
and ecx, dword [ebx + 0x1c]
pushal
mov ch, 1
lodsd eax, dword [esi]
mov ebx, 0xa3e54e1c
in eax, 0xa3
jns 0x1006168c
jecxz 0x100616b7
je 0x100616f0
and al, bl
imul al
mov esp, 0x49250c40
cld
jg 0x10061698
in eax, dx
xor al, 0x47
push edx
mov eax, 0x7a09326
push ebp
add byte [edi + ecx - 0x6f], ch
into
jbe 0x10061656
loop 0x1006167f
test eax, 0x51371758
sub dl, dh
imul edi, ecx, 0xffffffac
inc ebx
and eax, 0x5a29bff
sti
int 0x23
dec eax
push ecx
cmp dword [ebx + 0x6afcfd28], esp
fcomi st(7)
mov ecx, 0xd0f80d58
mov bh, 0x5b
sbb eax, 0x1f5569fe
sbb eax, dword [edi + 0x6e7d82c8]
popal
jl 0x10061750
les esi, [edi]
aaa
inc ecx
mov cl, byte [edi + 1]
xor ecx, esp
scasb al, byte es:[edi]
popal
cmc
inc eax
pop edi
xchg ecx, eax
std
mov al, byte [0xfd06f84c]
sbb al, 0x89
outsd dx, dword [esi]
rol edx, cl
adc dword [ecx - 0x434c282e], 0x51
ror dword [eax - 0x30], cl
salc
or eax, 0x6aced565
sbb esi, dword [ecx - 0x76]
in eax, 0x4d
lodsd eax, dword [esi]
jbe 0x10061777
jae 0x100616f3
inc ecx
mov cl, 0x40
popfd
lea ecx, [esi + 4]
call fcn.1005fd4c
and dword [esi + 0x18], 0
pushfd
test byte [0x100617cc], 0xe3
jne 0x100617cd
pop esi
pushal
out dx, al
mov al, 0x28
inc edx
in al, 0x26
mov cl, 0x67
xchg edx, eax
out dx, eax
cmpsb byte [esi], byte es:[edi]
inc ecx
jl 0x10061707
mov dl, 0xa6
cmpsb byte [esi], byte es:[edi]
pop es
mov cl, 0x47
xor al, 0x23
in eax, 0x8d
mov word [edx], gs
mov ebp, 0x2c66143e
or eax, 0x73163f26
mov esp, 0xd6fe4f09
pop es
mov dh, 2
int1
sbb al, 0x42
movsd dword es:[edi], dword [esi]
cld
lds eax, [esi + eax + 0x7955240]
test byte [esi], al
inc eax
push edx
xchg ebp, eax
pop es
mov ebx, dword [esp + edx*8]
call 0xcb4b4d5
add al, 0x60
bound ebp, qword cs:[esi + 0x6f]
outsb dx, byte [esi]
and ch, dh
adc al, 0x6a
mov ebx, 0xbe2292c6
sub dword [esi], esi
and bh, byte [ecx + 0x28eb2e75]
mov ah, 0x28
push 0xd94140a7
test al, 0x7b
pop esi
loopne 0x100617d0
jge 0x10061754
cmp byte [0x179bffa6], ch
mov al, byte [0x408028d0]
xchg dword [ebp + 0x2d], ebp
int3
popfd
and dword [esi + 0x14], 0
adc al, 0
and dword [esi], 0
mov dword [esi + 0x1c], 1
pop esi
pushfd
test byte [0x100617f4], 0x83
jne 0x100618f5
pop esi
pop es
in ax, dx
jbe 0x10061780
int 0xa3
sbb dword [esi + 0x560aa1bc], 0xffffffa2
mov edx, 0x7c97e85b
in al, 0x11
aad 0x81
inc ebp
arpl word [ebx + edi*2 + 0x4b60a9b7], bx
xor eax, dword [ebx - 0x4958560e]
jmp [eax - 0x4c08a690]