Function at 0x10019f80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
cmp dword [ebp + 8], 0
je 0x1001a31d
cmp dword [ebp + 0xc], 0
je 0x1001a31d
cmp dword [ebp + 0x14], 0
jne 0x1001a0d3
cmp edi, edx
jne 0x1001a31d
mov esi, esi
mov esi, esi
je 0x1001a31d
push eax
sar cl, 0xd0
shl dl, 1
mov edx, dword [ecx]
mov ecx, 0x2e5b4a30
mov esi, 0x86c1f918
mov ah, 0xc4
lcall 0x478f, 0x3f0458df
invalid
sbb cl, bh
rol dword [esi - 0x20653b4c], 0x58
add al, 0x3f
pop dword [edi - 0x10]
das
imul ebx, ebx, 0x4483303c
add al, 0xe9
test eax, 0x702a2c1e
test dword [ebp + 0x6e], ecx
xor byte [ebx - 0x5616fbbc], al
push ds
sub al, 0x2a
jo 0x10019f81
dec ebp
outsb dx, byte [esi]
sub eax, 0x6e6130af
sub ebx, dword [edx]
push 0x31
jg 0x10019ff1
call fcn.1001a740
xor eax, dword [edi]
add byte [eax], al
add esp, 0xc
mov eax, dword [ebp - 0x10]
cmp dword [eax + 4], 0
jne 0x1001a485
inc ebp
invalid
cmp eax, ebx
jne 0x1001a38a
mov eax, eax
mov eax, eax
je 0x1001a38a
mov dword [0x7f34eacb], eax
jl 0x10019fdf
or eax, 0xf07125fc
pop ds
movsb byte es:[edi], byte [esi]
fabs
invalid
mov eax, dword [ebp - 0x10]
add eax, dword [edx]
mov ecx, dword [ebp + 8]
cmp ecx, ebx
jne 0x1001a42f
mov esi, esi
je 0x1001a42f
loope 0x1001a011
wait
outsd dx, dword [esi]
mov bh, 0xf8
ljmp 0x1679
or eax, 0xffffffff
jmp 0x1001a24f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov dword [ebp - 0xc], edx
cmp dword [ebp + 0x10], 0
jne 0x1001a17a
cmp edi, esi
jne 0x1001a508
mov ecx, ecx
je 0x1001a508
xchg ebx, eax
mov cs, word [edx - 0x1b76be3]
outsb dx, byte [esi]
sub ebp, ecx
daa
or byte [esi], cl
fbld tbyte [ecx - 1]
outsd dx, dword [esi]
sub byte [edi], bl
add al, 0xbc
mov byte [ecx], ch
xor esi, dword [ebx]
sub ebx, dword [edx + 0x2ce4c170]
lahf
sub al, 0xe2
push esi
in eax, 0xd
dec ecx
mov dword [0xe8c69d4b], eax
or ah, byte [edx - 0x7cc7ea00]
push cx
stc
arpl word [ebx - 0x3f], si
or byte [edi - 0xf218ad1], ah
inc ebp
retf
add edx, dword [ecx + 4]
mov dword [ebp - 0x10], edx
mov eax, 1
test eax, eax
jne 0x1001a508
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ecx], edx
xor eax, eax
jmp 0x1001a24f
cmp ebp, eax
jne 0x1001a3d7
mov esi, esi
mov esi, esi
je 0x1001a3d7
pop eax
rol dword [ebx + 0x2cf11453], cl
cli
movsb byte es:[edi], byte [esi]
add byte [edx], dh
mov cl, 0xa6
iretd
add edx, dword [ebp + 0xc]
cmp dword [ebp - 0x10], edx
jbe 0x1001a66e
cmp edx, ebp
jne 0x1001a5fe
mov ebx, ebx
je 0x1001a5fe
push ebp
pop edi
mov gs, word [edx + 0x4fdfa125]
mov edx, 0x22d52e3
sub eax, 0x168a1b10
mov eax, dword [0xe3ba4fdf]
push edx
sub eax, 0x1b102d02
mov dl, byte [esi]
sal dword [ebp + 0x76fbb5ce], 0xfb
mov ecx, 0xdc966c3b
out 0xf3, eax
push cs
dec esi
push ss
lds esp, [ebx]
std
sbb dh, dh
push edx
out dx, al
sbb edi, dword [eax - 0x3d]
push es
xchg ecx, eax
jp 0x1001a203
xor al, 0xef
leave
mov dl, byte [esi]
or edx, dword [ebp - 0x1e]
sub al, byte [ecx + ebx]
jecxz 0x1001a242
sub ebx, dword [ecx]
mov bh, 0xa8
jge 0x1001a25e
in al, dx
xor ch, byte [esi]
sub ch, byte [ebp + 0x4c]
pop edi
mov cl, 0xfc
sub esp, ebp
xor eax, eax
mov esp, ebp
pop ebp
ret
cmp ebx, ebp
jne 0x1001a6dd
mov ecx, ecx
mov ecx, ecx
leave
je 0x1001a6dd
mov byte [ebx], bh
pop eax
pop ss
mov ebp, 0xbeb55f73
invalid
add ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jbe 0x1001a58a
cmp ebp, eax
jne 0x1001a580
mov edi, edi
mov edi, edi
je 0x1001a580
adc esp, dword [ebx + 0x6a]
mov bh, byte [edx + 0x5705354b]
sbb al, byte [esi + 0xc]
cmp bl, byte [eax - 0x4b]
jns 0x1001a360
aaa
test dh, 0xae
jg 0x1001a2cd
sbb byte [edx + 0x1c], bh
jb 0x1001a2fd
add cl, byte [ecx]
add bh, dl
or dword [edx], eax
cli
and dword [edx + 0x778c7ea8], edx
inc edx
xor al, 0xcc
jl 0x1001a32f
adc byte [eax], bl
loopne 0x1001a342
aaa
inc edx
test dword [edi - 0x54], 0x16b5243
inc dx
inc ebx
push edx
imul eax, dword [ecx], 0x66
inc edx
jecxz 0x1001a315
cmp ebp, esi
jne 0x1001a0cb
mov ebx, ebx
je 0x1001a0cb
in eax, 0xd2
cmp esi, 0x9e47d216
rol byte [ecx + 0x47d216fe], cl
sahf
pop ds
sub eax, 0xeb3010d3
mov dh, 0x8a
in al, 0x3a
jo 0x1001a3ae
or byte [eax - 0x57284acf], al
cmp eax, 0xe3e96ca
invalid
sahf
sti
pop esp
iretd
jmp 0x1001a4a9
invalid
sti
push edx
enter 0x2472, 0x44
cmpsb byte [esi], byte es:[edi]
fild qword [edi]
invalid
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
cmp eax, esi
jne 0x1001a2c1
mov eax, eax
mov eax, eax
je 0x1001a2c1
push 0xaacecfd2
mov edi, 0x14236fe3
aam 0x42
pop ss
xor eax, 0x8570fc7a
jl 0x1001a3a4
xor dl, byte [esi + esi*4 + 0x37]
invalid
add ecx, dword [ebp + 0xc]
cmp eax, ecx
jbe 0x1001a43e
or eax, 0xffffffff
jmp 0x1001a24f
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
cmp edi, ebx
jne 0x1001a253
mov eax, eax
je 0x1001a253
pop esp
sbb ebp, dword [eax]
ret
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
add edx, dword [ecx]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
add ecx, dword [eax + 4]
mov dword [ebp - 0x10], ecx
mov edx, 1
test edx, edx
jne 0x1001a17a
cmp esi, ebx
jne 0x1001a24d
mov edi, edi
mov edi, edi
je 0x1001a24d
mov ecx, 0xd71a45d1
inc ebp
sbb dl, bh
in eax, dx
and byte [ebx], dh
push esi
mov esi, esi
mov ebx, 0xcd0e360b
xor edx, dword [esi - 0x75]
idiv byte [ebx - 0x32f1c9f5]
cmp eax, 0xa91a08e6
or dl, byte [ecx + 0x2d]
mov ebx, 0xa513b9c9
mov cl, 0x13
or al, 0x9e
test eax, 0x4091563
bound eax, qword [ebp - 0x7f94bccd]
je 0x1001a4bd
scasb al, byte es:[edi]
and esp, ebx
mov esi, 0x62bcdb5e
loope 0x1001a54c
invalid
sub byte [esi], bl
jg 0x1001a4c2
cmpsd dword [esi], dword es:[edi]
fiadd word [ecx + 0x458b3178]
invalid
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
add ecx, dword [eax]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 8]
cmp edx, ebx
jne 0x1001a1e2
mov esi, esi
mov esi, esi
je 0x1001a1e2
pushfd
cdq
int1
aad 0xda
aaa
test eax, 0x6f1dfafa
into
inc edx
clc
xor esi, dword [ecx + 0x29725d3f]
pop es
sub eax, 0xfd943af4
push eax
rcr byte [edx + 0x20], cl
jb 0x1001a53c
jecxz 0x1001a4fe
mov byte [esi - 0x1fdce477], dl
mov dword [ebx], ebx
and esp, eax
pop ds
inc esp
jno 0x1001a552
loop 0x1001a5bd
inc esi
or dh, 0xd2
iretd
jg 0x1001a508
xor edi, esi
pop ebp
mov edx, 0xc6d12db7
inc ecx
xchg ebp, eax
aam 0x99
add al, 0x4f
in eax, dx
sbb eax, 0x35b6c285
sub dword ss:[di], eax
pop esi
cmp cl, dh
cwde
pop ds
in eax, dx
or al, 0xb8
invalid
mov eax, 0xfffffffe
jmp 0x1001a24f
mov edx, dword [ebp - 0x10]
cmp ebp, edx
jne 0x1001a06f
invalid
mov ebx, ebx
je 0x1001a06f
fsub qword [edi + 0x3ad99292]
adc esp, dword [esi + 0x66b4227a]
add dl, byte [edx - 0x6c124523]
and dword [ebx], 0x46dd8345
mov ch, al
out 0xb7, eax
int 0x39
sub bh, byte [edi + esi*2 + 0x54]
ja 0x1001a613
into
leave
mov ebx, 0x9ffbd071
push es
mov ch, 0x6d
dec ebx
add dword [edi - 0x27129773], eax
jecxz 0x1001a55e
inc eax
mov dh, 0x21
shr dword [ebp + edi*4 + 0x26], cl
add byte [edx + eax*2], bl
insb byte es:[edi], dx
jge 0x1001a56e
in al, dx
jb 0x1001a593
sub byte [ebx + 0x4d], al
insb byte es:[edi], dx
pop es
push ecx
bound esi, qword [ebx]
in eax, dx
cmpsd dword [esi], dword es:[edi]
pop ds
test al, 0x23
sub ebp, dword [ebp + 0x74]
salc
shr bl, cl
mov al, 0xe8
pop eax
shl ch, cl
and al, 0xa2
or eax, 0xffffffff
cmp edi, eax
jne 0x1001a669
mov ebx, ebx
je 0x1001a669
sbb esp, dword [ebx - 0x70b6b2ab]
inc edi
jl 0x1001a5d0
pushfd
insb byte es:[edi], dx
invalid
jmp 0x1001a24f
mov eax, dword [ebp - 0x10]
cmp dword [eax + 4], 0
jne 0x1001a67c
jmp 0x1001a16b
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
cmp ebx, edx
jne 0x1001a158
mov ebx, ebx
je 0x1001a158
dec ebp
or ebp, esp
adc dword [ebx - 0x5cfd2366], ebx
jo 0x1001a677
add eax, 0xc5a1248b
push ebp
add word [edx + 0x14], di
mov cl, 0x2f
sbb al, 0xaf
sub al, byte [edi + 0x22d291c1]
mov ecx, 0x1957dd83
call 0xb641477b
test al, 0x73
mov edx, fs
movsd dword es:[edi], dword [esi]
inc eax
test al, 0xe3
sub ah, ah
stc
adc al, 0x81
invalid
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 8
push ecx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 8]
push edx
cmp ecx, eax
jne 0x1001a008
mov ebp, ebp
mov ebp, ebp
je 0x1001a008
inc eax
imul ecx, dword [ebx], 0x1a
mov ah, byte [edi - 0x1b60f40f]
dec edi
pop ebp
or dword [ecx*8 + 0x24267c2f], 0x4e5ef9ed
lodsb al, byte [esi]
scasd eax, dword es:[edi]
fsubr dword [esi + 0x69fd21a5]
adc bl, 0xb7
jno 0x1001a79b
retf
cmpsb byte [esi], byte es:[edi]
mov dword [edi - 0x34], edi
int3
cld
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0xd], 0
mov eax, dword [ebp + 0x10]
imul eax, eax, 0xf6
cmp edx, ecx
jne 0x1001a828
mov ebx, ebx
je 0x1001a828
ljmp 0x5b9a:0x3b916420
pop ebx
std
sar byte [ecx + 0x4904c50], 1
loop 0x1001a74b
xchg edx, eax
hlt
mov al, 0xb0
invalid
dec ebp
mov edx, 0xf491351c
mov al, byte [0xe64b82ff]
loope 0x1001a735
inc esp
dec ebp
mov byte [0xc0d3a4d3], al
xor al, byte [eax]
mov byte [ecx + 0x69], ah
salc
mov edi, 0x86339ac6
pop esi
push 0xd63b574c
xchg byte [esi + 0x68], bl
dec esp
push edi
cmp edx, esi
jne 0x1001a962
test dword [ecx + eax - 0x2d750000], ebx
mov edx, edx
je 0x1001a962
add esi, dword [ebx + 0xa]
mov al, byte [0x797a2158]
and dword [edx + 0x79], edi
jo 0x1001a7e6
dec ebx
jecxz 0x1001a776
leave
xchg dword [ecx - 0x78], esp
sub al, 0x17
pop ss
fsub st(6)
pushfd
outsb dx, byte [esi]
loope 0x1001a787
mov al, byte [0xe032ea70]
jo 0x1001a7d3
xor ah, al
mov eax, dword [0x6def72c]
and dword [eax - 0x367d373f], edi
inc ebp
jg 0x1001a856
dec eax
mov dl, 0xa0
xchg esp, eax
pop ss
jo 0x1001a7b9
xchg dword [edi + 0x713cff96], edi
pushal
xchg edx, eax
mov al, 0xe2
mov ch, dh
jne 0x1001a7e0
or eax, 0x361957f1
in al, dx
jge 0x1001a7c1
xor byte [eax + 0x725b5333], ah
or al, 0xab
sbb al, 0xe6
lahf
inc ebp
and al, 0xf0
push es
mov dword [di - 9], eax
mov dword [ebp - 9], eax
mov byte [ebp - 5], 0
mov esi, esi
cmp dword [ebp + 0xc], 0
je 0x1001a8fa
cmp ecx, ebp
jne 0x1001a877
mov edi, edi
mov edi, edi
je 0x1001a877
outsb dx, byte [esi]
push es
mov dword [edx + 0x4aaeacaf], edi
retf
je 0x1001a85e
stosb byte es:[edi], al
jbe 0x1001a873
into
cmp eax, 0x76acb350
cmp eax, 0x76acb350
and ebp, dword [edi]
insb byte es:[edi], dx
pop ecx
dec ebx
fild word [ebp - 0x14ab2a79]
loope 0x1001a820
or edi, edx
inc ebx
or edi, dword [edi + ebp]
and al, byte [ebx + 0x7500087d]
jg 0x1001a8b9
cmp dword [ebp + 8], 0
jne 0x1001a8fc
cmp ebx, esi
fidiv word [ebp + 0x79]
jne 0x1001a8fa
mov esi, esi
je 0x1001a8fa
fnstsw word [ebx + ebx*4]
cld
aam 0x8b
pop ss
loop 0x1001a86e
add eax, 0x1a5d2363
and edx, ebx
add ebp, 0xffffff92
add dh, byte [ebp + 0x49eb10f]
xor al, byte [0x85e17a92]
mov byte [0xd42051e4], al
jns 0x1001a913
jl 0x1001a87f
xor al, 0xb7
xor ah, byte [ebx + 0x57]
mov cl, 0x37
cwde
mov esi, 0xac95215
movsb byte es:[edi], byte [esi]
push ds
test dword [ecx], 0x290736fa
adc edx, esp
xor dh, byte [edi + 0x3e]
or ah, byte [esi + ebx + 0x36fa01f7]
pop es
sub dword [ecx], edx
loop 0x1001a8f7
ja 0x1001a905
cmc
div esp
or al, 0x83
div ecx
mov dword [ebp - 0xd], eax
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0xd]
mov al, byte [edx]
push ebp
mov al, byte [edx]
mov byte [ebp - 5], al
mov edx, edx
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0xd]
mov dl, byte [ebp - 5]
mov byte [ecx], dl
mov eax, dword [ebp - 4]
add eax, 0xf6
mov dword [ebp - 4], eax
jmp 0x1001a8fc
mov esp, ebp
pop ebp
in eax, 0x5d
ret
jmp 0x1001a8f6
cmp ebp, eax
jne 0x1001a7be
mov ebp, ebp
in eax, dx
je 0x1001a7be
clc
mov dword [0xc2c5fe8f], eax
inc eax
cmp ch, byte [edi]
pop ebp
clc
pushal
jg 0x1001a8d5
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esp, dword [edx]
out 0xd8, al
mov al, byte [0xe8cb3464]
dec eax
movsb byte es:[edi], byte [esi]
jno 0x1001a90c
push esp
mov al, 0x82
mov esi, 0xe9acdf23
sbb eax, 0x19254d6d
dec esp
push 0xd909c4c1
sbb al, 1
nop
out dx, al
inc ecx
imul ebp, dword [eax + 0x5cf3527f], 0x73
add dh, byte [edi - 0x22f686]
add byte [edx], cl
shl dword [esi], 0xb9
fsub st(5)
int3
invalid
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 9]
jae 0x1001a8f6
mov ebx, ebx
mov edx, dword [ebp - 4]
mov dword [ebp - 0xd], edx
mov ebx, ebx
mov eax, dword [ebp - 0xd]
xor edx, edx
mov ecx, 0xf6
cmp ebp, edi
jne 0x1001a8cc
mov edi, edi
je 0x1001a8cc
jne 0x1001a98f
dec dword [esi - 0x101ef18e]
pop ds
inc ebp
sub eax, 0x66a35c74
popfd
push ss
cmp eax, 0x6fa05074
adc ah, byte [eax + edx - 0x75736a5]
pop esi
nop
jge 0x1001a9d3
invalid
sub ebp, esp
jge 0x1001a94c
wait
push ebp
ret
aas
and ch, dl
in eax, 0x92
inc ecx
ret