Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x23c7cf11
and ebx, ebx
mov ebx, eax
popal
or eax, eax
add eax, ebx
mov ebx, 0x252cccf2
mov edx, 0
mov ecx, eax
mov ebx, esi
sub esi, ebx
or esi, ebx
mov edi, ecx
inc esi
and ebx, esi
add esi, 0x7bfa56fa
mov eax, edi
not ebx
or esi, ebx
inc edx
add esi, 0x3be90326
inc esi
mov esi, ebx
cmp edx, 0x1006483
jne 0xa789c5
sub esi, 1
mov esi, 0xf12ddacc
add eax, eax
add ebx, 0x6478f4d0
mov edx, 0xa78796
add edi, ecx
dec esi
sub esi, 0x13da6c35
mov eax, 0xa7898a
not esi
or edi, edi
not edi
mov ebx, dword [edx]
or esi, ecx
add esi, edi
and ebx, 0xff
dec edi
mov edi, esi
xor dword [eax], ebx
or edi, esi
dec edi
mov esi, 0xb99d390b
inc eax
add ecx, 0xd25ade0
sub edi, esi
inc edx
and ecx, edi
or esi, ecx
inc esi
cmp eax, entry0
jl 0xa78a20
sub esi, 0x1da27b3d
add esi, 0x54b5798e
and esi, edi
inc edi
mov edi, ecx
mov ecx, 0x158c3204
add edx, 1
mov esi, 0xa7898e
add edi, 0x3e038278
or edx, edi
and ebx, edx
mov esi, dword [esi]
sub ecx, ebx
add edx, ebx
mov edx, 0x297af6bd
mov esi, dword [esi]
inc ebx
inc ebx
mov edx, edi
push esi
mov ecx, edx
or edi, ebx
mov esi, 0xa7898a
add ecx, 0xcd0bbc9b
add ebx, 0x6915d981
sub ecx, edx
mov esi, dword [esi]
add edx, 0xdfe30087
or edx, ecx
mov esi, dword [esi]
and edx, ecx
mov ecx, ebx
or ecx, edi
push 0xa78992
and ecx, ebx
and ebx, ecx
sub ecx, edx
call esi
inc ebx
sub ebx, edi
inc edx
pop esi
add edi, 0xb92a84d6
add edx, ebx
and ebx, edx
push 0xa7899f
dec edx
and edi, edi
push eax
mov ebx, edx
and edx, ebx
call esi
mov edx, ebx
not ebx
push 0x40
add ecx, 1
not ebx
and ecx, edx
push 0x3000
not ecx
dec ecx
sub ebx, ecx
push 0x20000f9f
mov edx, 0x2ac857aa
or ebx, ebx
sub ecx, edi
push 0
mov edi, 0x4417bd2c
and ecx, ecx
add edi, ecx
call eax
not ecx
and edi, edi
add eax, 0x20000f2e
or ebx, edi
dec edx
and edi, edx
mov esi, 0xf9e9036
inc ebx
not edx
mov dword [eax], esi
sub ebx, ecx
and edx, edx
sub edx, 0xfa7038d
mov esi, dword [eax]
mov edx, 0xb9015546
add edi, 0xef1f3442
dec edx
cmp esi, 0xf9e9036
je 0xa78b60
mov ebx, 0
mov dword [ebx], eax
mov edi, 0xac1c20c2
inc edx
sub edx, 0x25f2de6e
sub ebx, ecx
mov edx, ecx
add ecx, edx
sub eax, 1
mov eax, ebx
mov edi, section..idata
add ebx, 0xd4cec805
and ebx, eax
mov esi, 0xa78795
mov ebx, 0x7e475755
or ebx, ebx
add ebx, 0xc2b37875
mov ecx, 0
not eax
add eax, 0xb370cea2
inc ebx
mov edx, 0xa78796
mov ebx, 0x92219505
dec eax
lea edx, [edx + ecx]
add eax, eax
add eax, ebx
or ebx, ebx
mov edx, dword [edx]
not eax
mov ebx, eax
and edx, 0xff
or ebx, ebx
or ebx, ebx
inc ecx
or eax, ebx
sub ebx, eax
cmp ecx, 0x1f4
jne 0xa78bdd
mov ecx, 0
or ebx, ebx
sub ebx, eax
sub eax, ebx
not eax
sub eax, ebx
dec ebx
xor dword [edi], edx
mov eax, 0x4e87c8c
and eax, ebx
add edi, 2
add eax, ebx
dec eax
cmp edi, esi
jl 0xa78ba7
mov eax, 0x125428a
and eax, eax
add ebx, 0x2f457f79
dec eax
mov eax, ebx
mov eax, section..idata
dec edi
dec ebx
add ebx, 0x8e69a350
mov esi, section..idata
sub ebx, 0x75103b48
and edi, edi
mov edx, 0xa78795
and edi, edi
and ebx, edi
add ebx, edi
mov ecx, 0
or ebx, edi
or ebx, ebx
mov cl, byte [esi]
mov edi, 0xdb0753cd
sub edi, ebx
mov byte [eax], cl
mov edi, ebx
mov edi, ebx
inc eax
sub edi, ebx
add edi, 0xc0434e7c
add esi, 2
mov ebx, 0x4b2f2d7d
add ebx, 0x628c4ac7
cmp esi, edx
jle 0xa78c40
mov ebx, 0xa56f01e2
add edi, 0x36cd9a07
sub ebx, 0x3547e88a
sub eax, 0x707c3f28
or ebx, ebx
push 0x8dc6a0
add eax, eax
sub eax, 0x8ea8d0b1
ret