Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4170291a
not edi
sub edx, 0xf265287
popal
not edi
mov edi, 0x7327606f
or edi, edx
mov edi, 0
mov esi, eax
sub ecx, 1
sub ecx, 0x7854bc10
add ebx, ebx
mov edx, esi
add ebx, 0x98899a16
dec ebx
or ecx, ecx
mov eax, edx
dec ecx
add ebx, ecx
dec ebx
inc edi
not ecx
add ecx, ecx
cmp edi, 0x100bb4d
jne 0xa789c9
add ebx, 0x72c6b0fc
sub ebx, 0x8b58cd1d
and ebx, ecx
inc edi
sub edi, 0x285d7240
mov ecx, 0xa78796
add ebx, 0xb3c2591
mov edi, eax
mov edx, 0xa7898a
sub eax, 0x118939b
add eax, ebx
mov esi, dword [ecx]
dec ebx
mov eax, edi
add ebx, edi
and esi, 0xff
and eax, ebx
mov edi, 0xab1899cc
sub eax, edi
xor dword [edx], esi
add eax, eax
add eax, eax
inc edx
and eax, eax
add edi, 1
add ebx, eax
add ecx, 1
mov edi, eax
inc eax
mov ebx, eax
cmp edx, entry0
jl 0xa78a2a
sub edi, eax
sub edi, 1
add ebx, ebx
mov eax, edi
inc edi
add eax, 0xb590b40c
sub ebx, edx
inc esi
add ebx, ebx
mov edi, 0xa7898e
add ebx, esi
not ebx
mov edi, dword [edi]
and ecx, ebx
dec edx
mov edi, dword [edi]
not edx
mov edx, esi
push edi
add esi, ebx
sub esi, ecx
mov edi, 0xa7898a
and esi, edx
mov ebx, 0xc9e0a067
or esi, edx
mov edi, dword [edi]
sub esi, 0x99660dca
add ecx, edx
and ebx, esi
mov edi, dword [edi]
sub ecx, 0xabe0eb36
sub esi, edx
push 0xa78992
dec edx
not esi
call edi
add edx, 0xaeecc0c
sub esi, 1
add edx, edx
pop edi
or esi, ebx
inc esi
not ebx
push 0xa7899f
or edx, esi
or edx, ebx
push eax
sub ecx, 0x22c37876
mov esi, 0xbbba4d68
add ebx, 0x1f633fe0
call edi
not ecx
and ecx, edx
mov edx, esi
sub esp, 4
mov dword [esp], 0x40
inc ebx
inc esi
push 0x3000
sub ebx, ecx
inc edx
sub esp, 4
mov dword [esp], 0x20000e4f
not edx
add esi, 0x49cf4545
push 0
add edx, edx
add ebx, esi
add ecx, 1
call eax
sub esi, ebx
mov ebx, 0xdb6dbc8a
sub edx, ebx
add eax, 0x20000d9c
mov ecx, ebx
or edx, esi
mov edi, 0x104885e9
not ecx
not ebx
inc esi
mov dword [eax], edi
add esi, edx
add ecx, 0xa2d35d42
mov edi, dword [eax]
mov ecx, esi
not ecx
cmp edi, 0x104885e9
je 0xa78b71
mov edx, 0
mov dword [edx], ecx
mov ebx, 0x9ebe3edd
not esi
sub ebx, ecx
mov ebx, 0x6ba22332
sub esi, ebx
sub edi, edx
add edx, 0x7e922fee
mov edi, edx
mov ebx, section..text
mov edx, edi
and edi, edi
mov esi, 0xa78795
sub edi, 0xcffa2ab6
or edi, edx
mov ecx, 0
dec edi
mov edx, edi
mov eax, 0xa78796
mov edi, 0x1140807b
dec edi
and edi, edx
lea eax, [eax + ecx]
not edx
or edi, edx
mov eax, dword [eax]
or edi, edi
add edi, 1
and edi, edi
and eax, 0xff
inc edi
sub edi, edx
add ecx, 1
add edi, edx
inc edi
dec edx
cmp ecx, 0x1f4
jne 0xa78be9
mov ecx, 0
add edx, edx
and edx, edx
not edi
and edi, edx
sub edx, edi
xor dword [ebx], eax
not edx
not edx
add ebx, 2
mov edi, 0x3a2fe6fb
not edi
mov edx, edi
cmp ebx, esi
jl 0xa78ba9
mov edx, edi
or edx, edi
add edi, edx
not edx
mov edi, section..text
add ecx, 0x2c435526
dec esi
inc ecx
mov ebx, section..text
inc esi
dec esi
inc esi
mov edx, 0xa78795
add ecx, ecx
mov esi, ecx
add esi, 0xfe502d65
mov eax, 0
sub ecx, 0x340d929e
and ecx, ecx
add esi, 0x46d125b6
mov al, byte [ebx]
add esi, 0xa3b6bbdb
or ecx, esi
mov byte [edi], al
sub ecx, esi
mov esi, ecx
inc edi
not esi
sub ecx, 0x7d18756f
add ecx, ecx
add ebx, 2
sub ecx, 0xd96f3e3f
inc esi
cmp ebx, edx
jle 0xa78c4f
add ecx, 1
not esi
or ecx, esi
sub edi, edx
add edi, 1
push 0x8dc6a0
or edi, edi
mov edx, 0xc6fc4f25
mov edi, edx
ret