Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x98c427aa
mov esi, ecx
add esi, 1
mov esi, 0xed621995
popal
dec ecx
and ecx, esi
mov ebx, 0
mov edi, esi
add edx, 0xcb45bc2
sub edx, eax
mov ecx, edi
sub eax, edx
or edx, eax
mov esi, ecx
mov eax, 0xef077d9c
sub eax, 1
add edx, edx
inc ebx
or eax, edx
sub eax, 0x5c55ca68
cmp ebx, 0x100a48e
jne 0xa789c8
mov edx, 0xf0f1873f
sub edx, eax
and eax, eax
sub ecx, 0x4e3abe7e
mov esi, 0x2dd424b0
mov ecx, 0xa78796
not edx
add edx, edx
sub ebx, eax
mov esi, 0xa7898a
and ebx, eax
mov ebx, edx
not ebx
mov edi, dword [ecx]
mov ebx, eax
inc edx
inc eax
and edi, 0xff
sub eax, 1
and ebx, eax
xor dword [esi], edi
sub edx, ebx
sub edx, 0x2288dc74
inc esi
sub eax, ebx
sub edx, ebx
add ecx, 1
add eax, 0x317a91ca
not ebx
dec edx
cmp esi, entry0
jl 0xa78a26
add edx, 0xa4955d19
not eax
and edx, eax
sub edx, eax
dec edx
not edx
not edi
mov ebx, 0xa7898e
inc esi
dec edx
mov ebx, dword [ebx]
add ecx, 0xb2a9005d
add edx, edx
mov ebx, dword [ebx]
and edi, ecx
and edi, esi
add ecx, 0x59997f8b
push ebx
mov edx, 0x86fbac7f
inc edi
mov ebx, 0xa7898a
not esi
sub edi, 0x95155123
mov ebx, dword [ebx]
and ecx, edi
add esi, edx
mov ebx, dword [ebx]
and edi, esi
or ecx, ecx
push 0xa78992
and ecx, ecx
inc edi
mov edi, ecx
call ebx
sub ecx, edx
mov edi, 0x98de3b70
mov ebx, dword [esp]
add esp, 4
sub edi, ecx
add edx, 0xef6c17bf
sub esp, 4
mov dword [esp], 0xa7899f
add esi, edi
and esi, ecx
push eax
add ecx, 0x93ab23d
add edi, edi
call ebx
add ecx, ecx
mov esi, 0xf74f11dc
push 0x40
sub ecx, edi
add esi, 0x89a11e1b
and esi, edx
push 0x3000
sub esi, ecx
and edi, edi
not edi
sub esp, 4
mov dword [esp], 0x20000e2e
or edx, edi
mov esi, 0x25b99cc4
or esi, esi
push 0
sub edi, 0x69642ba2
sub ecx, edi
dec ecx
call eax
mov edi, edx
mov edi, edx
add eax, 0x20000d9b
sub edx, ecx
sub edx, 0xcaadb8a2
mov ebx, 0x4ca20477
add edx, edx
add esi, 0x63492b9e
mov dword [eax], ebx
dec edx
or esi, edi
sub ecx, esi
mov ebx, dword [eax]
add esi, 0x2ed71219
add edx, 0x63e4186
cmp ebx, 0x4ca20477
je 0xa78b73
mov edx, 0
mov eax, dword [edx]
add edx, edi
sub esi, edx
not edx
not esi
or edx, esi
add edx, esi
sub esi, ecx
sub ecx, esi
or esi, ecx
mov eax, section.UPX1
sub ecx, 1
sub esi, 0x9b06797e
or esi, esi
mov edx, 0xa78795
sub ecx, esi
or ecx, esi
add esi, 1
mov ebx, 0
sub ecx, 0x92f6ecff
and esi, esi
sub esi, 0x9331303b
mov edi, 0xa78796
mov esi, 0x99436f24
dec ecx
lea edi, [edi + ebx]
mov ecx, esi
mov ecx, 0x4f16cb40
mov edi, dword [edi]
not esi
or ecx, esi
and esi, ecx
and edi, 0xff
inc esi
inc ecx
add ebx, 1
mov ecx, esi
dec ecx
cmp ebx, 0x1f4
jne 0xa78bf5
mov ebx, 0
inc esi
inc esi
sub esi, 0x6affb7b
add ecx, esi
xor dword [eax], edi
not esi
mov esi, 0xe350fd3e
mov ecx, esi
add eax, 2
add ecx, ecx
or ecx, ecx
cmp eax, edx
jl 0xa78bba
add ecx, 0x3640f8f2
mov ecx, esi
add esi, esi
inc ecx
dec esi
mov ecx, 0x9d91835
mov esi, section.UPX1
mov edx, 0xff6abfbb
not edx
add edx, 1
mov edi, section.UPX1
add edx, ebx
or edx, ebx
sub edx, 0x68da1b15
mov ecx, 0xa78795
or edx, edx
sub edx, 1
mov eax, 0
not edx
mov edx, ebx
and ebx, edx
mov al, byte [edi]
mov ebx, edx
inc ebx
mov byte [esi], al
mov edx, ebx
sub edx, ebx
inc edx
inc esi
mov ebx, edx
sub ebx, 0xd62355ea
add edi, 2
sub edx, ebx
and ebx, edx
cmp edi, ecx
jle 0xa78c66
dec ebx
mov edx, ebx
inc ebx
add esi, 0xcd5b0072
mov ecx, esi
sub esi, 0x284aa52b
sub esp, 4
mov dword [esp], 0x8dc6a0
add ecx, ecx
mov esi, ecx
ret