Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4e378eca
and edx, edx
sub edx, 0x4c0c2bdb
popal
add ecx, ecx
mov edx, ecx
mov edi, 0
mov ebx, eax
mov edx, ecx
add edx, edx
mov esi, ebx
mov edx, ecx
not ecx
sub ecx, edx
mov eax, esi
not ecx
dec ecx
not edx
inc edi
sub edx, ecx
sub ecx, edx
not ecx
cmp edi, 0x10096a3
jne 0xa789c4
not ecx
sub edx, 0x60838b57
not ecx
not edx
not ecx
mov edi, 0xa78796
inc ecx
not ecx
mov edx, 0xa7898a
add eax, 0xd866e1ed
and ebx, eax
sub ebx, ecx
mov esi, dword [edi]
inc ecx
sub ecx, 0x794b2aca
sub ecx, 0x1266b553
and esi, 0xff
sub eax, ecx
add eax, ecx
xor dword [edx], esi
dec eax
mov ecx, 0xca79ddfe
inc edx
mov ecx, 0x96856d6f
dec ecx
add edi, 1
not eax
and ecx, ebx
or ecx, ecx
cmp edx, entry0
jl 0xa78a11
dec eax
inc eax
sub eax, 0x36c9b4b5
dec ecx
sub eax, 0x21ecebc0
mov eax, ecx
sub edi, ecx
sub edx, ebx
and edx, ecx
mov esi, 0xa7898e
add ecx, ebx
mov edi, edx
mov edi, 0xccdbfdab
mov esi, dword [esi]
not edi
or edx, edx
mov esi, dword [esi]
add ecx, ebx
or edi, edx
sub esp, 4
mov dword [esp], esi
add ebx, 0x515f69fd
and edx, ebx
add ecx, 0x4706f9b2
mov esi, 0xa7898a
add edi, ecx
dec edi
mov esi, dword [esi]
inc ecx
sub ecx, 1
mov esi, dword [esi]
dec ebx
sub ebx, 1
push 0xa78992
inc edi
add ebx, 0x266e45a2
call esi
mov edx, 0x942cb75b
sub edi, 0xfe99b319
pop esi
or edi, edx
and ecx, edx
push 0xa7899f
dec edx
mov ebx, ecx
push eax
mov ecx, ebx
or edi, ebx
call esi
or edi, edi
dec ecx
push 0x40
mov ecx, ebx
mov edx, 0x715dc021
push 0x3000
and edx, edx
dec ecx
push 0x20000328
dec edx
and edx, ecx
sub ebx, edx
push 0
mov edx, ecx
and edx, ecx
call eax
add ecx, edx
sub edi, edx
add eax, 0x20000287
mov ebx, 0x16197e2b
mov ecx, ebx
add edi, 0x329f60b4
mov esi, 0x6c48ffc4
and ecx, edi
or ebx, ebx
mov dword [eax], esi
sub edx, edi
dec edi
not edx
mov esi, dword [eax]
or edx, edi
sub edi, 0xb68e0fc7
sub edx, ecx
cmp esi, 0x6c48ffc4
je 0xa78b4b
mov eax, 0
mov byte [eax], cl
add ecx, edi
not ebx
sub ecx, 0xb67d85d5
add edi, 1
mov edi, 0x59842c2d
dec edx
and ecx, edx
add ecx, 0xdcc0833f
mov eax, section..reltc
mov ecx, edx
add edx, 0x2e09f01b
mov esi, 0xa78795
add edx, ecx
sub ecx, 0xa1455a4d
sub ecx, 0x8e57b3c0
mov ebx, 0
sub ecx, 0xe52faf0f
add edx, ecx
mov edi, 0xa78796
not edx
add edx, edx
not edx
lea edi, [edi + ebx]
mov edx, 0xb0b01305
sub edx, ecx
mov edx, 0x6d9f688a
mov edi, dword [edi]
dec edx
inc edx
and edi, 0xff
inc edx
add edx, 0xf860b71e
inc ebx
sub edx, ecx
not edx
cmp ebx, 0x1f4
jne 0xa78bd3
mov ebx, 0
add ecx, ecx
mov edx, ecx
add ecx, edx
or ecx, edx
mov edx, 0xc145e3d1
xor dword [eax], edi
mov edx, 0x9da01f3e
mov edx, ecx
add eax, 2
dec edx
and ecx, edx
cmp eax, esi
jl 0xa78b96
mov edx, ecx
add ecx, edx
sub edx, 0x70c320a1
sub edx, ecx
sub ecx, edx
add ecx, 0xbe3791bf
mov ebx, section..reltc
dec edi
add edi, 1
add ecx, edi
mov esi, section..reltc
and edi, edi
add ecx, 0xa0220155
mov ecx, edi
mov edx, 0xa78795
mov edi, 0x7197a14b
add ecx, 0x24179d12
mov eax, 0
sub edi, 0x57b5ab27
sub ecx, edi
add ecx, 1
mov al, byte [esi]
and edi, ecx
sub ecx, 1
mov byte [ebx], al
and ecx, edi
add edi, 0x1f69b0a1
add edi, ecx
add ebx, 1
or ecx, edi
sub edi, ecx
sub edi, 0x88947733
add esi, 2
mov edi, ecx
sub ecx, edi
not edi
cmp esi, edx
jle 0xa78c4e
mov ecx, 0x9e0ae2b0
add edi, 0xc73187f9
inc ecx
and edx, edx
sub ecx, 0x4a0612ad
push 0x8dc6a0
add ecx, ecx
inc edx
add edx, 0xa8e3ec85
ret