Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9dd2dd3c
add edx, 1
sub edx, 0x2e51bf7b
add edi, edi
popal
not edx
add edi, edi
mov edx, edi
mov ebx, 0
mov edx, eax
mov ecx, esi
sub ecx, esi
mov edi, edx
sub ecx, 1
or ecx, ecx
dec ecx
mov eax, edi
sub esi, 1
add ecx, 0x9b302030
inc ebx
mov esi, ecx
sub ecx, 0xa1348a40
sub esi, 0x2064b5e7
cmp ebx, 0x1005cb7
jne 0xa789cc
or ecx, esi
not esi
mov ecx, esi
mov edx, edi
sub edx, edi
mov esi, 0xa78796
dec ecx
mov edx, ebx
mov edi, 0xa7898a
add edx, ebx
sub ebx, ecx
sub ebx, edx
mov eax, dword [esi]
not edx
add edx, 0x2696d908
or ecx, ebx
and eax, 0xff
mov edx, 0xef2e9837
sub ecx, ebx
add edx, edx
xor dword [edi], eax
or ebx, ecx
sub edx, 0x1d4e1481
add edi, 1
add edx, edx
add ecx, 0xca1c461e
add esi, 1
not ebx
sub edx, 0xd4ec6940
not ebx
cmp edi, entry0
jl 0xa78a23
dec edx
not ebx
inc ebx
inc ecx
add edx, ecx
add edi, 0xd459faa0
dec edx
mov esi, 0xa7898e
sub edi, 0xa40d3998
sub edx, 0x6dcbe433
not ebx
mov esi, dword [esi]
mov edx, ecx
dec edx
mov esi, dword [esi]
or edx, ebx
mov edx, ecx
push esi
and ecx, ecx
add ebx, 0xa2443af3
not ecx
mov esi, 0xa7898a
mov ebx, edi
mov edi, 0x20e3e1ff
mov esi, dword [esi]
or edx, edi
dec edx
or edi, edx
mov esi, dword [esi]
add ebx, edx
sub ebx, edx
push 0xa78992
mov ebx, 0xfb259b77
inc ecx
add edi, 0x21318ff7
call esi
add edx, 0xef9236e7
sub edx, 0xe17d23ed
pop esi
or edx, edi
sub ecx, 0x1d45b338
inc ecx
push 0xa7899f
mov edx, 0xaa68fa4a
sub edx, 1
push eax
add edx, edx
sub edx, edi
call esi
add ecx, ecx
mov ecx, edx
push 0x40
sub edx, 0xda17b3a4
add edx, edi
mov ecx, 0xa862dd8e
push 0x3000
add edi, 0x15e1866c
not ebx
sub edx, 0x47ced0f7
push 0x200001a5
or edx, ecx
dec ebx
and ebx, ecx
push 0
sub edx, 0x44478ab9
and edx, edi
call eax
mov edx, ebx
add edx, 1
not ecx
add eax, 0x2000013a
sub edi, ebx
mov ebx, 0x76fb9276
sub edi, ebx
mov esi, 0xde7776a8
sub edi, edx
or ecx, ecx
mov dword [eax], esi
add edx, 0x74cd455c
and ecx, ebx
mov esi, dword [eax]
dec ebx
sub ebx, edi
and edx, edx
cmp esi, 0xde7776a8
je 0xa78b86
mov eax, 0
mov byte [eax], bl
sub edx, ecx
dec ecx
not edi
and edi, ecx
add edx, 0x7358a7b9
or edi, edi
mov ebx, section..reltc
and edi, edx
or edi, edx
or edx, edx
mov eax, 0xa78795
add edi, edi
dec edi
mov ecx, 0
and edi, edi
sub edi, edx
mov esi, 0xa78796
mov edx, edi
and edi, edi
lea esi, [ecx + esi]
or edx, edx
mov edi, edx
sub edx, 0x4c6cd9f6
mov esi, dword [esi]
add edx, 0x42cb473f
add edx, edi
not edx
and esi, 0xff
not edx
mov edx, edi
inc ecx
and edx, edx
add edi, edx
cmp ecx, 0x1f4
jne 0xa78bef
mov ecx, 0
mov edx, edi
sub edi, 0xeb3f641
or edx, edi
and edx, edi
or edx, edi
sub edi, 0x30a8a306
xor dword [ebx], esi
mov edi, 0x2f6f43
or edi, edi
add ebx, 2
mov edx, 0xcf4bd5a8
sub edx, edi
inc edi
cmp ebx, eax
jl 0xa78bb1
sub edi, 1
sub edx, 0xb8276c33
sub edx, edi
mov edi, edx
mov edx, 0x9e46c92d
mov esi, section..reltc
add ebx, edx
mov edx, ebx
mov edi, section..reltc
add ebx, edx
not ebx
mov eax, 0xa78795
not edx
inc edx
dec ebx
mov ecx, 0
or ebx, ebx
not ebx
mov cl, byte [edi]
not edx
and edx, edx
mov byte [esi], cl
inc edx
sub edx, 0x8186729c
add ebx, ebx
inc esi
add edx, 0x71ebe1f5
or edx, edx
not edx
add edi, 2
not ebx
and ebx, ebx
sub edx, 1
cmp edi, eax
jle 0xa78c5b
or ebx, ebx
sub ebx, 1
or edi, edi
dec edi
not edx
push 0x8dc6a0
inc edi
dec edx
ret