Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7a5cb440
and edx, edx
or ecx, ecx
inc edx
popal
dec ecx
sub ecx, edx
mov ecx, 0x3e819618
mov esi, 0
mov eax, edi
and ebx, ecx
dec ecx
mov edx, eax
or ebx, ecx
or ecx, ecx
mov edi, edx
sub ebx, 0x4b97d844
dec ecx
and ecx, ebx
inc esi
dec ecx
mov ebx, 0x761185d8
add ecx, 0x741a64ed
cmp esi, 0x1004c80
jne 0xa789c5
and ecx, ecx
sub ebx, ecx
sub ecx, 0xed0d09f2
add ecx, edx
mov eax, 0xa78796
sub edi, ebx
inc ebx
mov ecx, 0xa7898a
sub esi, 1
add edi, edi
sub edi, 0x64ee63da
mov edx, dword [eax]
mov esi, 0xde6d64c1
or ebx, edi
sub ebx, edi
and edx, 0xff
mov esi, 0xe2374340
add ebx, 1
xor dword [ecx], edx
dec ebx
and edi, esi
not edi
inc ecx
dec edi
add ebx, 0x575988c7
mov esi, edi
inc eax
or ebx, ebx
sub esi, 0xdee44c6c
cmp ecx, entry0
jl 0xa78a1b
mov esi, 0x4524ca80
dec edi
add edi, esi
sub edi, 1
add ebx, edi
add ebx, 0x9259d79d
or ebx, ebx
add esi, edx
mov ebx, 0x2e45c160
mov ecx, 0xa7898e
not ebx
inc esi
mov ecx, dword [ecx]
sub esi, 1
and esi, esi
mov ecx, dword [ecx]
not edx
sub edx, ebx
push ecx
sub edx, esi
dec ebx
and edx, edi
mov ecx, 0xa7898a
sub ebx, edi
sub edx, edi
sub esi, 1
mov ecx, dword [ecx]
sub edi, edx
add edx, 0x44847d2c
sub esi, edi
mov ecx, dword [ecx]
mov esi, edi
and esi, ebx
push 0xa78992
not edi
sub esi, 0x3a353737
sub edx, ebx
call ecx
not ebx
mov esi, edx
mov edi, esi
pop ecx
add edx, ebx
or edi, esi
add esi, 0x799c2dc2
push 0xa7899f
and esi, esi
inc edx
sub ebx, edi
sub esp, 4
mov dword [esp], eax
dec esi
mov edi, edx
add esi, 1
call ecx
sub edi, 0x81bff465
sub ebx, 0x11a3038f
dec edx
push 0x40
mov esi, edx
sub edx, 0x9fe1ed0c
add ebx, esi
push 0x3000
inc edx
or edx, ebx
add esi, 0xa783674
push 0x2000010a
and edi, ebx
mov edx, ebx
mov edi, 0xe304ce8c
push 0
sub ebx, esi
mov edx, edi
dec esi
call eax
add edx, ebx
mov edi, 0x5361e6db
add eax, 0x20000059
not edi
add edi, 0x834c592f
add edx, ebx
mov ecx, 0x56bdf933
or edx, edx
mov esi, edi
and edi, ebx
mov dword [eax], ecx
mov edi, 0x25e33619
dec esi
or edx, edx
mov ecx, dword [eax]
add edx, edx
sub ebx, esi
cmp ecx, 0x56bdf933
je 0xa78b7d
mov edx, 0
mov bl, byte [edx]
not esi
mov edx, edi
or edi, esi
or ebx, esi
sub esi, edi
sub edx, ecx
add edx, 0x906855e2
sub edx, 1
mov ebx, section..text
sub ecx, 0xab5b167d
dec edx
mov edx, ecx
mov esi, 0xa78795
or edx, edx
sub edx, 0x4c351869
mov eax, 0
mov edx, 0xc920c96a
sub edx, ecx
mov edi, 0xa78796
and edx, edx
add ecx, 0x51b95b1c
lea edi, [eax + edi]
add edx, edx
dec edx
and edx, edx
mov edi, dword [edi]
mov edx, ecx
add edx, 0xfcf01d12
and edi, 0xff
add ecx, 1
inc edx
and edx, edx
add eax, 1
add edx, 0x7714992d
mov edx, ecx
cmp eax, 0x1f4
jne 0xa78c05
mov eax, 0
add edx, 0x80c3ba0a
inc edx
sub ecx, 1
and ecx, edx
dec edx
xor dword [ebx], edi
inc ecx
dec ecx
add ebx, 2
not edx
sub edx, ecx
cmp ebx, esi
jl 0xa78bbc
or edx, edx
sub edx, 0xc48e76ac
or edx, edx
inc ecx
mov ebx, section..text
inc esi
mov edi, esi
mov edx, section..text
add esi, esi
inc esi
mov eax, 0xa78795
not esi
not esi
add edi, edi
mov ecx, 0
or esi, esi
or esi, esi
add esi, 0x3e0da20d
mov cl, byte [edx]
sub esi, 0x7718e120
not edi
mov esi, 0xfb287144
mov byte [ebx], cl
mov esi, 0xdb4f33f3
not edi
mov edi, esi
add ebx, 1
or esi, esi
mov esi, edi
mov edi, esi
add edx, 2
mov edi, 0x3f55ec65
add esi, 0x94e7d7a9
add esi, 1
cmp edx, eax
jle 0xa78c60
or esi, edi
inc esi
mov esi, 0xe2543809
dec edx
and ecx, ecx
push 0x8dc6a0
mov edx, ecx
sub edx, 0xe202a72f
ret