Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x998cfd88
and edx, edi
not edx
popal
mov edx, 0xad1b4199
sub edx, 0x4391e7f9
mov esi, 0
mov ecx, edi
mov ebx, 0xcd9ba4dc
add eax, ebx
add ebx, 0x54fd5915
mov edx, ecx
not eax
or ebx, ebx
mov edi, edx
mov eax, ebx
inc ebx
inc esi
sub eax, ebx
and eax, eax
or ebx, eax
cmp esi, 0x1001857
jne 0xa789c7
or ebx, eax
mov ebx, eax
mov edi, edx
mov edx, edi
mov ecx, 0xa78796
sub eax, 0xbad32d3c
not ebx
mov esi, 0xa7898a
or ebx, ebx
mov ebx, edx
add ebx, 1
mov edi, dword [ecx]
mov ebx, edx
add ebx, ebx
and eax, edx
and edi, 0xff
add edx, eax
mov eax, ebx
and ebx, eax
xor dword [esi], edi
sub edx, eax
and ebx, ebx
sub eax, ebx
inc esi
add eax, 0xe09594ae
not edx
sub edx, 0x8cea3b37
add ecx, 1
add eax, 1
sub eax, 0xa3eb19b
cmp esi, entry0
jl 0xa78a18
inc edx
not eax
dec ebx
and ebx, eax
and edi, edx
and edx, edi
sub ecx, 0xb7a7bbdf
mov ebx, 0xa7898e
sub edi, 0x15055de1
mov esi, edi
add ecx, 0x36c6b35a
mov ebx, dword [ebx]
mov esi, edi
dec edx
sub ecx, 0x56f6d109
mov ebx, dword [ebx]
inc ecx
dec ecx
and ecx, esi
push ebx
sub edi, 0x6c6be2f1
mov edi, 0x64a3641
add ecx, esi
mov ebx, 0xa7898a
not edx
and esi, edi
and edi, edx
mov ebx, dword [ebx]
sub ecx, 0x31bfd14
add edi, 0xe5bb867f
mov ebx, dword [ebx]
mov esi, ecx
not esi
push 0xa78992
inc ecx
not edi
call ebx
sub ecx, 0x2ff7a180
mov edx, 0x23f340c2
sub esi, 0xc713ae78
pop ebx
sub esi, edx
add edi, esi
push 0xa7899f
mov esi, edx
dec ecx
sub esp, 4
mov dword [esp], eax
or edi, esi
dec ecx
dec edi
call ebx
add edx, 1
inc edx
sub esp, 4
mov dword [esp], 0x40
not edi
add esi, esi
dec edi
push 0x3000
and edi, ecx
or esi, esi
sub esp, 4
mov dword [esp], 0x200005f1
add edi, edx
mov esi, edx
and edi, edx
push 0
add esi, 0x4146b5db
or ecx, edi
call eax
mov ecx, 0xf9f10b5
and esi, edx
add eax, 0x2000055a
add ecx, 0x6bb25e8a
dec ecx
mov ebx, 0x13233be6
add edi, 0x6aee2d43
add edi, 1
mov dword [eax], ebx
add esi, 0xda66c28a
dec edx
or edi, ecx
mov ebx, dword [eax]
add edx, ecx
add esi, 0xc1dff5c6
cmp ebx, 0x13233be6
je 0xa78b7d
mov edx, 0
mov dword [edx], eax
mov ecx, edi
sub edi, ecx
mov ecx, 0x72c63e44
sub edx, 0xa95820cf
mov esi, edx
add edi, 0x1b0de0d5
sub edx, 0xc8a36126
mov ecx, section..text
dec edx
sub edx, 1
mov esi, 0xa78795
inc edi
sub edx, 0x96bc9cc8
mov ebx, 0
and edx, edx
not edi
add edi, 1
mov eax, 0xa78796
mov edx, 0xecdc6c98
mov edi, 0x71a9d643
lea eax, [eax + ebx]
add edi, 0x572b53ef
not edi
mov eax, dword [eax]
add edx, edx
or edi, edx
mov edx, 0x710b27
and eax, 0xff
inc edx
mov edx, edi
inc edi
inc ebx
and edi, edx
add edx, edx
mov edx, 0xf6acd616
cmp ebx, 0x1f4
jne 0xa78c07
mov ebx, 0
not edx
add edx, 0x29efb644
or edi, edx
sub edi, edx
xor dword [ecx], eax
sub edx, edi
not edx
add ecx, 2
add edi, 0xc5fada33
not edi
cmp ecx, esi
jl 0xa78bc1
sub edx, edi
add edx, edx
sub edi, 0xc2d3948f
add edx, 0x15b5f4b1
dec edi
mov eax, section..text
sub edi, esi
sub edi, esi
mov esi, edi
mov ecx, section..text
mov esi, 0xfce848a6
add esi, esi
add edi, 0x1893ca29
mov edx, 0xa78795
mov edi, 0xa7d651bb
inc esi
mov ebx, 0
mov edi, 0xc0c088d9
add edi, 0x82238b3c
mov bl, byte [ecx]
sub edi, 0x6165f9f
add esi, edi
mov byte [eax], bl
add esi, edi
inc esi
inc eax
sub edi, esi
mov edi, esi
inc edi
add ecx, 2
sub edi, 0x3d4e6218
or esi, edi
cmp ecx, edx
jle 0xa78c78
sub edi, 0x695cefa0
add esi, esi
mov edi, edx
add edx, 1
push 0x8dc6a0
and edx, edx
add edx, edi
add edx, 0x1f362eca
ret