Function at 0x979a00
Capabilities:
Encode data using xor

Disassembly:
jmp 0x979a0a
pushal
call 0x979a10
pop ebp
sub ebp, 0x10
sub ebp, 0x579a00
jmp 0x979a26
mov eax, 0x579a00
add eax, ebp
add byte [edx - 0x3afcffa9], bl
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
add byte [ecx + 0x5f7], bh
add eax, 0x4c
mov ecx, 0x5f7
mov edx, 0x1a71917e
xor byte [eax], dl
inc eax
dec ecx
jne 0x979a3d
jmp 0x979a50
cmc
mov bl, 0xf5
test dword [edx + 0x7e], 0xbfff7e7e
xchg byte [esi + 0x7e], bh
jle 0x979adc
mov bl, 0xc6
ja 0x979ae1
jle 0x979ae3
les edx, [esi + 0x7e]
jle 0x979ae8
mov dword [ebp + edi*2 + 0x72fff5b6], ebx
jle 0x979af1
jle 0x979af2
mov ebx, 0x825a1af3
idiv dword [edx + 0x5a]
pop edx
push ss
dec esi
int3
push edx
pop edx
push ss
nop
jp 0x979a2a
js 0x979a27
jnp 0x979b11
jle 0x979b13
xchg edi, eax
push esp
jle 0x979b17
jle 0x979ac6
adc bl, byte [edx + 0x7e]
cmc
sti
jbe 0x979b21
jle 0x979b23
cmc
jmp 0x979b1a
pop edx
jp 0x979b47
jle 0x979b49
push ss
dec esi
int3
div dword [edx + 0x5a]
xchg esi, eax
jnp 0x979b60
jle 0x979b61
jle 0x979b62
jle 0x979a7c
xchg edi, eax
cmp edi, dword [esi + edi*2 + 0x7e]
sub ebp, dword [edx]
and eax, dword [ecx + 0xb81720b]
jl 0x979b66
jle 0x979b15
sub ah, byte [ebx]
or dword [ebx], 0x760b8172
or esi, dword [edx - 0x7f]
or esi, dword [esi - 0x6a]
jbe 0x979a89
xchg esi, eax
push es
jle 0x979b74
jle 0x979aed
ret
std
xchg esi, eax
jnp 0x979b47
jno 0x979b0d
xor byte [esi + 0x7e], bh
jle 0x979b89
jle 0x979b95
jno 0x979b0f
div byte [esi]
jle 0x979b9a
jle 0x979b9a
jle 0x979b36
cmc
bound eax, qword [edi - 2]
test dword [esi + 0x7e64fa71], edx
jle 0x979ba8
inc edi
inc byte [ebp + 0x64fa7196]
jle 0x979ba7
xchg esi, eax
jno 0x979b20
jle 0x979ba7
jle 0x979b29
inc byte [ebp + 0x6ffa7197]
jle 0x979bb0
test dword [edi + 0x7e6ffa71], edx
jle 0x979bb1
jle 0x979b4c
sbb bh, bh
test dword [ecx + 0x6bfa715b], eax
jle 0x979bbb
inc dword [ebp - 0x58ea47f]
imul edi, dword [esi + 0x7e], 0x7e
aas
sbb dword [ebx + 0x71], 0x7e7e6bfa
jle 0x979b7e
xchg edi, eax
mov dl, 0x81
add dword [ecx + 0x7f473257], 0xfd7bbffd
inc edi
jg 0x979b46
mov edi, 0x7a96fd7b
xchg edi, eax
xchg esi, eax
jp 0x979ae6
ret
xchg edi, eax
aad 0x81
add dword [ecx - 0xca5ad0b], 0xbc7a5a1a
jb 0x979bed
add dword [ecx + 0x5a52f581], 0x7a5a1af3
push edx
pop edx
sbb bl, byte [edx + 0x7a]
sbb bl, byte [edx + 0x7a]
mov esp, 0xf52b7e72
sub esi, ebp
xchg edx, eax
sub byte [ecx], ch
sub esi, ebp
or esi, dword [edx - 0xb]
add esi, dword [esi - 0x7e]
int3
hlt
mov ecx, 0x7e7e7e7f
lds edi, [esi + edi*2 + 0x7e]
jle 0x979c10
jle 0x979c10
lodsb al, byte [esi]
jno 0x979b92
jnp 0x979c17
jle 0x979c19
jle 0x979b90
hlt
push 0x71ac6c38
std
cmpsb byte [esi], byte es:[edi]
add dword [ecx + 0x71ac7c81], 0x7e7e7bfb
cmp dword [esp + ebp*4 + 0x71], 0x7e7e7bfb
lodsb al, byte [esi]
jno 0x979ba5
jnp 0x979c2a
jle 0x979c2c
jle 0x979ba3
hlt
push 0x71ac6c38
cmp byte [esp + ebp*4 + 0x71], ch
insb byte es:[edi], dx
lodsb al, byte [esi]
jno 0x979bb2
std
adc al, 0x7e
jle 0x979c37
jle 0x979c36
jle 0x979c07
dec ebp
mov esi, 0xfb71ac7c
jl 0x979b69
jno 0x979bba
jnp 0x979c3f
jle 0x979c41
hlt
hlt
mov esi, 0xfb71ac7c
lodsb al, byte [esi]
jno 0x979beb
jnp 0x979c70
jle 0x979c72
hlt
insb byte es:[edi], dx
lodsb al, byte [esi]
insd dword es:[edi], dx
mov esi, 0x7e78fa71
jno 0x979c06
js 0x979c8c
jle 0x979c8e
cmc
mov eax, dword [0x7df4a655]
idiv byte [ecx + 0x39]
jns 0x979c52
lds edi, [esi + edi*2 + 0x7e]
jle 0x979bb6
push cs
add dword [ecx + 0x7e7fc681], 0xac7c7e7e
jle 0x979ca5
lodsb al, byte [esi]
jno 0x979c27
jnp 0x979cac
jle 0x979cae
hlt
mov esi, 0xfb71ac7c
jl 0x979be5
jno 0x979c36
jnp 0x979cbb
jle 0x979cbd
hlt
cmp byte [esp + ebp*4 + 0x71], ch
cld
mov al, byte [0x55818181]
mov ebp, 0x7e7e7fc5
jle 0x979cc3
sti
dec edx
jle 0x979cd4
jle 0x979c1f
jg 0x979cd8
jle 0x979cda
jle 0x979cd9
jl 0x979c0a
lodsb al, byte [esi]
jno 0x979c5b
jnp 0x979ce0
jle 0x979ce2
hlt
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x979c6a
jnp 0x979cef
jle 0x979cf0
jle 0x979cf1
jle 0x979c68
hlt
push 0x71ac6c38
cld
mov al, byte [0x28818181]
cmc
mov dword [ebp - 0x75], edx
invalid
fisub dword [eax]
xchg edi, eax
jbe 0x979c0a
add dword [ecx + 0x769ebf36], 0xf53878f4
mov edi, 0x78f4769e
cmp ch, dh
jbe 0x979c84
js 0x979cca
cmc
xchg esi, eax
invalid
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x979ca7
jnp 0x979d2c
jle 0x979d2e
hlt
inc dword [esi + 0x7e7e037e]
jle 0x979cc2
jle 0x979d3f
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7b7e
jnp 0x979d4a
jle 0x979ccd
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7efe
xchg dh, bh
jle 0x979d56
jle 0x979cd9
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x979d5b
jle 0x979d5d
inc dword [esi + 0x7e7e7efe]
xchg dh, bh
jle 0x979d62
jle 0x979ce5
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x979d67
jle 0x979d69
sub ch, dh
mov dword [ebp - 0x72], edx
mov cs, word [ebp - 0x1a68df26]
add byte [ecx + 0x3878f481], 0x4d
invalid
fisub dword [eax]
xchg edi, eax
in eax, 0x80
add dword [ecx + 0x4d3878f4], 0x7f96beb7
jno 0x979cfc
mov bh, 0xbe
xchg esi, eax
jg 0x979d72
cli
jle 0x979d83
jle 0x979d06
jmp [edi + 0x7e7e7e7c]
scasd eax, dword es:[edi]
jl 0x979d88
jle 0x979d8a
cmc
xchg esi, eax
sub ch, dh
mov dword [ebp - 0x72], edx
invalid
jbe 0x979dac
and ebp, esi
dec edx
pop edx
sbb bl, byte [edx + 0x7a]
xchg edi, eax
jp 0x979db7
jle 0x979db9
xchg edi, eax
and ah, bl
push ss
invalid
jle 0x979dca
invalid
dec esi
outsb dx, byte [esi]
aaa
jno 0x979d57
sti
mov byte [ecx + 0x7a978181], al
add dword [ecx + 0x7e7a9781], 0x23337e7e
jle 0x979de2
jle 0x979d99
and ecx, ebp
stosb byte es:[edi], al
int 0xaa
pop edi
push esi
sub dl, dh
popfd
push esi
sub bl, byte [0xa1a10196]
mov eax, dword [0xfaf75fa2]
sub ah, bh
popfd
sub ah, byte [0xa1a19591]
mov eax, dword [0x5b26798a]
xchg ebp, eax
mov eax, dword [0x798aa1a1]
pop ebx
jns 0x979db0
pop ebx
sub bl, bl
mov eax, dword [0x58265b26]
sub bl, al
movsd dword es:[edi], dword [esi]
pop eax
and byte [ebx - 0x5f], bl
mov eax, dword [0x25aea1a1]
out 0xa1, eax
mov eax, dword [0x2077a2a1]
test ax, 0xa1a1
mov eax, dword [0xa1a94820]
mov eax, dword [0xa15820a1]
mov eax, dword [0x25aea1a1]
mov eax, dword [0xaea1a1a1]
and eax, 0xa1a1a1e7
mov byte [0xa9662077], al
mov eax, dword [0x4820a1a1]
dec eax
test eax, 0x20a1a1a1
pop eax
mov eax, dword [0xaea1a1a1]
mov eax, dword [0xa1a15820]
mov eax, dword [0x6d25aea1]
scasb al, byte es:[edi]
and eax, 0x5e5e5e6d
insd dword es:[edi], dx
pop esi
pop esi
pop esi
invalid
mov eax, dword [0xac24aea1]
mov eax, dword [0x2ac7a1a1]
cmpsb byte [esi], byte es:[edi]
and byte [ecx + 0x5e], al
scasb al, byte es:[edi]
mov eax, dword [0xa063a2a1]
mov ecx, 0x6622e8e8
mov dword [0x5e5e6948], eax
mov word [0x5e5e6948], ax
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x747a1a1]
ja 0x979e40
sbb dword [ecx - 0x5d5e09c5], esp
and byte fs:[ecx - 0x47], ah
movsd dword es:[edi], dword [esi]
mov eax, dword [0xa38a18a1]
mov eax, dword [0x49351ba1]
xchg esp, eax
adc byte [ecx - 0x51171e4f], 0x24
push edi
pop esi
pop esi
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x6bb6a1a1]
dec ebp
stc
mov dl, 0xc2
mov esi, 0xc2b20942
mov esi, 0x35b50289
xor eax, 0xb6cb3635
dec edx
cmp dword [0x3580b13a], esi
xor eax, 0x3972be35
retf 0xda0
cmp dh, byte [ecx + 0x35353580]
mov esi, 0xf3363972
retf 0xda0
jge 0x979e77
mov ah, 0xcd
xor eax, 0x3a353535
mov al, 0x3b
xor eax, 0xbea23535
dec ebp
cmp dword [edx - 0x359a0cca], esp
mov al, byte [0x357de471]
mov dh, 0x4a
cmp dword [0x35b0b13a], esi
xor eax, 0x354ab635
xor eax, 0x353fb03a
xor eax, 0x254ab635
xor eax, 0x3550b13a
xor eax, 0xe0be6035
mov dl, 0xc8
mov esi, 0xc8b22548
xor eax, 0xbe603535
loopne 0x979e30
enter 0x48be, 0x25
mov dl, 0xc8
invalid