Function at 0x978a84
Capabilities:
Encode data using xor

Disassembly:
xchg ebx, eax
invalid
sahf
invalid
cli
ljmp 0xd636
jae 0x978911
inc ecx
inc edx
test ecx, ebp
js 0x978952
cdq
jmp 0xea054c0a
loopne 0x978937
pushfd
sahf
xlatb
cli
cli
sbb eax, 0x1deefadb
iretd
jno 0x978a29
nop
fnstenv [edi - 0x18]
nop
int 0x77
pushfd
nop
mov cl, 0x77
nop
nop
movsd dword es:[edi], dword [esi]
ja 0x978988
nop
test eax, 0x9da4b877
jecxz 0x97899a
jbe 0x978999
stc
pop esi
aad 0x7f
in eax, dx
push edx
push es
arpl bp, sp
inc esi
push edx
pop edx
push ss
jp 0x978a1a
std
pop ebx
sbb edx, edi
inc edi
or byte [edi + 0x62], al
sub eax, 0xbfae42be
test dword [esi - 0x52], ebx
mov bl, 0x85
push 0xffffffffffffffaf
xchg dword [ebx], ebp
aad 0x83
jns 0x978a43
loope 0x978a1b
sal ecx, 0xd9
loope 0x9789f2
in eax, 0xe2
adc al, 6
sar dword [esp + esi + 0x58], cl
xor al, 0x58
sal dword [edx], 0x52
ljmp 0xf5b9
rcr byte [edi + 0x2c], 1
jb 0x978a1c
xor dh, byte cs:[edi - 0x19]
and byte [esi + 0xd], cl
mov edx, 0xbcdf5a3c
sub dword [ebp + 0xd], ebx
salc
and byte [eax], cl
mov dl, 0x11
push ss
or dword [eax], eax
jmp 0x978a8e
pushal
call 0x978a94
pop ebp
sub ebp, 0x10
sub ebp, 0x578a84
jmp 0x978aaa
mov eax, 0x578a84
add eax, ebp
add eax, 0x4c
mov ecx, 0x605
mov edx, 0xe7234d88
xor byte [eax], dl
inc eax
dec ecx
jne 0x978ac1
jmp 0x978ad4
add eax, dword [ebp + 3]
add dword [eax + ecx*4 + 0x49098888], esi
jo 0x978a68
mov byte [eax - 0x71cfba75], cl
mov byte [eax - 0x775fcd78], cl
mov byte [eax + 0x408b6a7f], cl
add ecx, dword [ecx]
test byte [eax + 0x4d8b8888], cl
add eax, 0x174acec
mov word [eax + ebx*8 - 0x790eaf20], gs
mov al, ah
and ebx, dword [eax - 0x5b76773f]
lodsb al, byte [esi]
loopne 0x978ae6
inc byte [ecx - 0x777772a0]
mov byte [ecx - 0x44], ah
mov byte [eax - 0x5313fa78], cl
je 0x978b24
movsb byte es:[edi], byte [esi]
lodsb al, byte [esi]
add esp, dword [ebx + eax + 0xd]
or byte [eax + 0x1d038888], 0x84
mov byte [eax - 0x67fafc78], cl
mov byte [eax - 0x759eb678], cl
mov ecx, 0x8c4a0b8a
rol dword [edi + 0x77777c0d], 0x77
add esp, dword [esp + ebp*4 - 0x735313fb]
dec edx
test byte [eax - 0x7353fbfd], cl
mov byte [eax - 0xeaf1f78], cl
xchg byte [eax - 0x3e67dc20], cl
mov byte [ecx - 0x13fa535c], cl
lodsb al, byte [esi]
je 0x978b6c
test byte [eax - 0x77777773], ch
popal
mov bl, 0x8a
lodsb al, byte [esi]
pushal
lea ecx, [eax - 0x4c9e7778]
mov cl, byte [eax - 0x5313fa78]
je 0x978b7d
mov byte [eax - 0x754c9e78], cl
mov byte [eax - 0x77754c9f], cl
mov byte [0x174acec], al
mov byte [eax + 0x74acec05], cl
add dword [esp + ebp*4 - 0x77531bfb], esp
ja 0x978b81
movsb byte es:[edi], byte [esi]
lodsb al, byte [esi]
add eax, 0x7788ace4
std
mov byte [edi - 3], dh
test byte [edi - 3], dh
and byte [eax - 0x12], 0x88
mov byte [eax - 0x777fcafd], cl
mov byte [eax + 0x5abb41bb], cl
or esp, dword [eax - 0x73]
rol byte [edi - 0x777739f4], 0x88
xchg dword [eax], eax
ror byte [eax + 0x3ee8888], 0x94
mov cl, 8
jae 0x978c0e
xchg dword [edx + edx*4], ecx
mov byte [eax + 0x61730888], cl
xchg dword [ecx + ebx*4], ecx
mov byte [eax + 0x7309ee88], cl
ja 0x978b6f
xchg dword [ebx*4 - 0x36777778], ecx
popal
inc esp
mov byte [eax + 0x4461c988], cl
ja 0x978c44
ja 0x978b70
les esi, [ecx - 0x72b6f477]
or esp, dword [eax - 0x74]
popal
xor eax, 0xa1777777
fdiv qword [ecx - 0x71b6f476]
or esp, dword [edx - 0x74]
or esp, dword [eax - 0x73]
popal
and esi, dword [edi + 0x77]
ja 0x978bc5
dec edx
test byte [eax - 0x219bfc23], cl
invalid
mov dword [eax - 0x75cc7778], ecx
mov byte [eax - 0x78a57578], cl
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or edx, dword [eax + 0x77]
ja 0x978ca1
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or esp, edx
mov byte [eax - 0x75b74478], cl
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x78a56532]
or esp, dword [edx - 0x75777777]
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
mov byte [eax - 0x3161fd78], cl
lcall 0x8889, 0xa20b875a
mov byte [edx - 0x72f278a6], cl
mov byte [eax - 0x3161fd78], cl
lcall 0x875a, 0x8a489b5a
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
xchg dword [esi + ecx*4], ecx
mov byte [eax - 0x5ca8fc78], cl
push eax
add cl, byte [ebx + 0x33cf8f00]
mov cl, byte [eax - 0x79e7778]
mov byte [ecx - 8], ah
ja 0x978d1d
ja 0x978cd8
mov dword [eax + 0x5a8a8888], ecx
xchg dword [0x8888888d], ecx
mov byte [eax - 0x78a57578], cl
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
dec eax
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0x978d45
push esi
ja 0x978d44
ja 0x978c72
mov dword [0x8889334b], eax
mov byte [eax - 0x7743f279], cl
mov byte [eax - 0x777776cf], cl
mov byte [edx - 0x72f278a6], cl
mov byte [eax - 0x3161fd78], cl
dec ebx
xor ecx, dword [ecx - 0x78777778]
or eax, 0x888888bc
xor dword [ecx - 0x75777778], ecx
pop edx
xchg dword [0x8888888d], ecx
add bl, byte [esi - 0x64a56532]
inc ecx
mov bl, byte [edx - 0x79]
mov byte [eax - 0x7776ce78], cl
mov byte [eax + 0xd875a8a], cl
lea ecx, [eax - 0x61fd7778]
into
lcall 0x875a, 0x8a419b5a
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0x978d79
fiadd word [ebx]
jg 0x978ca9
jge 0x978d83
sub al, 0xd6
popal
xor byte [edi + 0x77], 0x77
ror byte [ecx + 0x68], 0x80
add cl, byte [esi + 0x316003ce]
mov dword [eax + 0x5a8a8888], ecx
xchg dword [0x8888888d], ecx
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x64a56532]
inc ecx
mov bl, byte [edx - 0x79]
or eax, 0x8888888d
add bl, byte [esi - 0x78a56532]
or dl, byte [esi + 0x77]
ja 0x978db6
xchg dword [edx], ecx
push esi
ja 0x978db5
ja 0x978d49
or dword [eax - 0x78], esi
jo 0x978cca
cmc
mov byte [eax + 0x77775109], cl
mov byte [ecx], cl
push ecx
ja 0x978dc0
or dword [ecx + 0x77], edx
ja 0x978dc1
ja 0x978dc2
ja 0x978d55
or dword [eax - 0x78], esi
jo 0x978cd6
lea ecx, [eax + 0x77510988]
ja 0x978dcd
ja 0x978dce
ja 0x978d61
or dword [eax + 8], esi
jo 0x978d62
mov byte [eax - 0x77a6f678], cl
mov byte [eax + 0x8700988], cl
mov byte [eax - 0x77f78ff7], cl
mov byte [eax - 0x7777a6f7], cl
mov byte [eax - 0x5c80fc22], cl
mov byte [ecx], cl
jo 0x978d6e
mov byte [eax - 0x77a6f678], cl
mov byte [eax + 0x7f03de88], cl
mov dword [0xd62c7b78], eax
mov dh, bl
add edi, dword [edi - 0x5d]
js 0x978df0
sub al, 0xd6
popal
adc esi, dword [esi + 0x77]
jbe 0x978df2
ja 0x978df3
ja 0x978d7f
add cl, byte [esi + 0x4841bbce]
pushal
mov cs, esi
mov ebx, 0x89604841
xchg dword [edx + edx*4], ecx
mov byte [eax - 0x75a6f678], cl
mov byte [eax - 0x219ffc78], cl
add edi, dword [edi - 0x5d]
mov dword [edi - 0x77776df4], eax
mov byte [ecx], cl
pop ecx
mov cl, byte [eax + 0x60038888]
fiadd word [ebx]
jg 0x978d39
js 0x978e13
sub al, 0xd6
xor ecx, dword [ecx + 0x61888888]
sti
jbe 0x978e1a
ja 0x978d7a
mov dword [0x4f0380f5], eax
xlatb
salc
add ebp, dword [ebp - 0x2b]
dec edx
or byte [eax + 0x5acb403], 0xec
add eax, 0xd68cacec
in al, dx
lodsb al, byte [esi]
mov esi, ss
popal
mov word [eax - 0x577c7778], cs
test al, 0x36
sbb dword ss:[eax], esi
sbb dword [eax], esi
or al, 2
fisttp word [eax + 0x48094d8b]
in eax, dx
mov ecx, dword [eax - 0x759bce78]
mov byte [eax - 0x20f246ce], cl
add eax, 0xc1c898b8
xchg dword [0x7777777e], ecx
mov byte [eax - 0x77759bcf], cl
mov byte [edx], dh
mov ecx, 0xb805df0d
cwde
enter 0xffffffffffff87c1, 0xd
jle 0x978e59
ja 0x978e5b
popal
mov word [eax + 0x69858888], cs
and eax, 0x3e473ef8
dec esi
xor cl, dh
into
test dword [esi], edi
dec esi
xor al, byte [0xb9b9198e]
mov ecx, 0xe73447ba
mov ecx, 0x85c9322f
das
xor bh, byte [0xb9b98d89]
mov ecx, 0xee326192
mov ecx, 0x38bdf632
inc ebx
mov ecx, 0xb6b9b9b9
cmp eax, 0xb9b9b9ff
mov edx, 0xb17e386f
xor dh, dh
mov ebp, 0xb9b94338
mov ecx, 0xff3db6b9
mov ecx, 0x6fbab9b9
cmp byte [esi - 0x4f], bh
mov ecx, 0x5038b9b9
mov cl, 0xb9
mov ecx, 0xb94038b9
mov ecx, 0x3db6b9b9
insd dword es:[edi], dx
inc esi
inc esi
inc esi
fbstp tbyte [edx]
mov esi, 0x3ab55178
pop ecx
mov dh, 0x38
inc ecx
mov edx, 0xb6b9b9b9
cmp al, 0xb4
mov ecx, 0x32dfb9b9
mov esi, 0xb6465938
mov ecx, 0xb87bbab9
mov ecx, 0xa1b87bba
invalid
jnp 0x978e15
mov eax, dword [0x7e3af0f0]
mov ebx, 0x46467150
inc esi
push eax
mov ebp, 0x89b9b9b9
mov dword [ebx + 0x333d0141], ebp
out dx, al
mov ecx, 0x79387cba
stosb byte es:[edi], al
mov ebp, 0x8700b9b9
mov ebx, 0x7703b9b9
pop ecx
adc cl, byte [ecx]
mov dword [ecx + 0x3cb6f0f9], ebp
dec edi
inc esi
inc esi
inc esi
push eax
mov ebp, 0x82b9b9b9
inc ebx
retf