Function at 0x6f157a
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
push edi
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x18], ebx
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x18]
mov esi, ecx
push eax
push dword [esi + 0x38]
call dword [fcn.006a13b8]
cmp dword [esi + 0xb4], ebx
jne 0x71743e
mov dword [ebp - 4], ebx
call dword [fcn.006a1c40]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
cmp eax, dword [edi]
jl 0x6f3bd9
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cmp eax, dword [edi + 4]
jl 0x6f3bd9
xor eax, eax
mov dword [ebp + 0xc], ebx
inc eax
cmp dword [ebp - 4], ebx
jne 0x717460
mov eax, dword [ebp + 8]
push ebx
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
push dword [esi + 0x38]
call dword [fcn.006a1424]
cmp dword [ebp - 4], ebx
jne 0x717490
cmp dword [ebp - 8], ebx
je 0x7174b2
pop edi
pop esi
pop ebx
leave
ret 8
add byte [edi], ch
add byte [eax + eax + 0x2d], dh
add byte [edi], dl
imul eax, dword [eax], 0x64006e
outsd dx, dword [esi]
add byte [edi], dh
scasb al, byte es:[edi]
or cl, byte [edx + 0x8082]
add byte [edx + 0x20], bl
add byte [eax], al
pop ebx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + ebx*2 + 0x40e0c080], bh
add al, 0
add byte [eax], al
inc eax
test al, 0x79
xchg ecx, eax
wait
imul ecx, esp, 0xffffff8a
add byte [0xf6771380], 4
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov esp, 0x9c0805a
scasb al, byte es:[edi]
hlt
test byte [eax + eax], 0
add dword [eax + 0x4f67713], eax
add byte [eax], al
adc byte [eax], ah
add al, 0xc0
das
and eax, 0x184
add byte [eax], bl
add byte [eax], al
add byte [eax], dl
jnp 0x717364
wait
add byte [edx - 0x6f], bh
wait
mov bl, 0x30
mov dword [edx + 0x4f6], eax
xor dh, 4
add byte [eax], al
insd dword es:[edi], dx
or eax, dword [eax]
add al, cl
or dword [edi], ebx
test byte [eax], al
adc byte [ebx], 0x77
enter 0x1f09, 0xffffffffffffff84
insd dword es:[edi], dx
or eax, dword [eax]
add byte [0x8000000], al
sub eax, 0x2000c080
add al, 0x34
jp 0x717394
xor al, 0x7a
xchg ecx, eax
wait
sahf
pop ebp
mov dword [edx + 7], eax
and byte [ebx + eax], dl
test dword [eax], eax
add byte [eax], al
add al, ch
adc al, 3
test dword [eax], eax
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], bh
jp 0x7173b4
cmp byte [edx - 0x6f], bh
wait
cmp dword [eax + 0x14208283], esi
add eax, dword [ebp + 1]
mov al, byte [pe_dos_header]
add byte [eax], al
add byte [edx + edi*2 - 0x6f], dh
add byte [eax], al
add byte [eax], al
je 0x7174b4
xchg ecx, eax
wait
psubusw mm0, qword [esi + 0x82]
add byte [eax], ah
popal
mov ecx, 0xb97a3c80
xchg byte [edx], al
and byte [ecx - 0x47], ah
cmp byte [edx + edi*2], 0xb9
add byte [ecx], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor al, 0x8b
jecxz 0x7173db
add dword [eax], eax
add byte [eax], al
pushal
add al, 0
add byte [eax + 0x9b917b], al
add byte [eax], al
add byte [esi - 0x4f7d799d], ah
jp 0x717400
cmp byte [ebx - 0x6f], 0x9b
add byte [eax], al
add byte [eax], al
cmpsb byte [esi], byte es:[edi]
arpl word [esi - 0x6e854f7e], ax
wait
dec eax
fld qword [ecx - 0x469edf7b]
cmp byte [edx + edi*2], 0xb9
jp 0x717434
cmp byte [0x488286d7], 0xdd
add dword [ebp - 0x7f466cf8], 0x80b96120
clc
jp 0x717420
wait
clc
dec ebp
mov al, byte [eax]
dec eax
fld qword [ecx + 0x1f09c885]
test ah, bl
add byte [eax], al
add byte [ecx], ah
mov al, 0x90
add byte es:[eax], al
add byte [eax], al
jp 0x717479
xor byte [edx], 2
add byte [eax], al
add al, bl
jp 0x717444
xchg ecx, eax
wait
wait
lds eax, [esi - 0x7e21f77e]
test dword [eax - 0x23], ecx
add dword [ebp - 0x7af5c580], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
and byte [ecx - 0x47], ah
cmp byte [eax], 0x7b
xchg ecx, eax
wait
invalid