Function at 0x996848
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x99684e
pop ebp
sub ebp, 6
sub ebp, 0x596848
jmp 0x9968ac
push esi
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jmp 0x9968b5
add al, 0
add byte [eax], al
push ebp
mov byte [0x48b83678], al
push 0xc5030059
mov eax, 0x596848
add eax, ebp
add eax, 0x93
mov ecx, 0x5c2
add byte [eax], al
mov edx, 0x771bce6b
xor byte [eax], dl
inc eax
dec ecx
jne 0x9968cc
jmp 0x9968df
loopne 0x996887
loopne 0x9968c5
push edi
imul ebp, dword [ebx + 0x6b], 0xffffffea
stosb byte es:[edi], al
xchg ebx, eax
imul ebp, dword [ebx + 0x6b], 0x68
cmpsb byte [esi], byte es:[edi]
shr dword [edi + 0x6b], cl
imul ebp, dword [ebx - 0x2f], 0x43
imul ebp, dword [ebx + 0x6b], 0xffffff9c
mov dword [eax - 0x5d], ebp
loopne 0x9968e9
imul ebp, dword [bp + di + 0x6b], 0x68
scasb al, byte es:[edi]
cmp edi, dword [ebx]
add ecx, dword [ebx + 0x36b665b]
or al, 0x5c
daa
imul ebp, dword [edx + 0x47], 0x4f
add esi, eax
push 0x6e83c9d1
imul ebp, dword [ebx + 0x6b], 0xffffff82
inc ebx
imul ebp, dword [ebx + 0x6b], 0x3e
loopne 0x9968ad
loopne 0x996916
arpl word [ebx + 0x6b], bp
imul esp, eax, 0xfffffffe
imul ebp, dword [bp + di + 0x6b], 0xffffffe0
out 0x7b, al
imul ebp, dword [ebx + 0x6b], 0xffffffaa
sub byte [ecx + 0x5a], 0x69
call 0x64bbd8eb
out dx, al
imul ebp, dword [ebx - 0x56], 0xffffff82
imul ebx, dword [edx + 0x69], 0x226fa9e8
out dx, al
lahf
xchg esp, eax
xchg esp, eax
xchg esp, eax
test eax, 0xe7e06b67
dec edi
outsd dx, dword [esi]
imul ebp, dword [ebx + 0x6b], 3
mov ebx, dword [ebx + 0x66]
imul eax, dword [ebx], 0xc
pop esp
daa
imul ebp, dword [edx + 0x47], 0x4f
cmp al, byte [ebx + 0x6b6b6b6e]
sub byte [edx], 0x69
imul ebp, dword [ebx + 0x3e], 0xffffffe6
pop es
dec edi
imul edx, dword [esi + ebx + 0x631e9467], 0xffffff83
sbb dword [ebx + 0x6b], ebp
imul esp, eax, 0xffffffd6
arpl word [ebx + 0x6b], bp
imul ebp, edx, 0xffffff9a
adc ah, ah
mov al, byte [0x129aea87]
in al, 0xa0
xchg dword [eax - 0x5e], ebx
pop eax
mov ecx, 0x236e83e8
out dx, eax
and eax, 0x646b6b6b
jecxz 0x9969c0
imul ebp, dword [ebx + 0x6b], 0xd
loopne 0x996a1a
push edx
jmp 0x996936
imul ebp, dword [edx], 0xffffff82
cmpsd dword [esi], dword es:[edi]
xchg esp, eax
xchg esp, eax
xchg esp, eax
inc edx
daa
push edx
push 0xffffffffffffffe8
stosb byte es:[edi], al
outsb dx, byte [esi]
call 0xd71bd956
xchg esp, eax
xchg esp, eax
xchg esp, eax
inc edx
aas
push edx
imul ebp, eax, 0x81e86daa
outsd dx, dword [esi]
call 0xc11bd868
xchg esp, eax
xchg esp, eax
xchg esp, eax
test eax, 0xe03e6b67
xchg dword [0x1ee03e3c], edi
loopne 0x996a0d
arpl word [edi + 0x6de1ebd9], dx
ljmp 0xe36b
ljmp 0xd06b:0x6b6b6aac
imul ebp, dword [ebx + 0x6b], 0x69
mov ecx, 0x6b6eee64
imul ebp, dword [ebx - 0x1f], 0x7d
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996a48
sub eax, 0xe864b979
mov bl, 0x94
jns 0x9969d6
call 0x952dfed6
xchg esp, eax
xchg esp, eax
xchg esp, eax
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe864b979
mov ecx, 0x6b01e864
imul ebp, dword [ebx + 0x58], 0xffffffab
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
add dword [ebx + 0x6b], ebp
imul ebx, dword [eax - 0x55], 0x69
mov ecx, 0x6b6eee64
imul ebp, dword [ebx - 0x1f], 0x7d
sub eax, 0xe864b979
inc ecx
push 0x6b
imul ebp, dword [ecx - 0x47], 0x64
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996a83
jns 0x996a11
js 0x996a05
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996a92
jns 0x996a20
js 0x996a14
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996aa1
jns 0x996a2f
js 0x996a23
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
jns 0x996a3e
js 0x996a32
out dx, eax
insd dword es:[edi], dx
imul ebp, dword [ebx + 0x6b], 0xffffffe0
mov ah, 0x40
mov bl, 0xe1
push 0xd02c6ce3
imul ebp, dword [ebx + 0x6b], 0x941b826b
xchg esp, eax
xchg esp, eax
shr dword [edx + 0x6b], cl
push 0x6b
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996add
jns 0x996a6b
js 0x996a5f
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
inc eax
test al, 0xd0
push 0x6b
imul ebp, dword [ebx + 0x64], 0xffffffee
pop edi
imul ebp, dword [ebx + 0x6b], 0xffffffd2
push 0x6b
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996b11
jns 0x996a9f
js 0x996a8a
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
cmp eax, 0x9e409ce0
cwde
iretd
shr byte [edx + 0x6b], cl
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0x996b4e
jns 0x996adc
js 0x996ac7
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
ljmp 0xea6b
xchg esp, eax
xchg esp, eax
ljmp 0xea6b