Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x387ec4e7
not esi
and esi, ebx
add esi, ebx
popal
mov esi, 0xcdc89aac
dec esi
mov ecx, 0
mov edx, esi
mov eax, 0x9852e86c
not edi
dec eax
mov ebx, edx
and edi, edi
not edi
sub edi, 0x363cf7f
mov esi, ebx
mov eax, 0x70464a4a
mov eax, 0x9f1941f2
not edi
inc ecx
or eax, edi
sub edi, eax
sub eax, 0xa5d8d8ef
cmp ecx, 0x1006e6a
jne 0xa789c4
sub edi, eax
and eax, edi
sub ebx, esi
mov esi, 0xa997f13e
mov esi, ebx
mov ebx, 0xa78796
or edi, eax
and esi, esi
not eax
mov edx, 0xa7898a
add esi, edi
inc esi
mov ecx, dword [ebx]
mov esi, 0x74c438bb
add eax, edi
sub esi, eax
and ecx, 0xff
add eax, 0x37e058ad
add eax, 0xc40ff188
xor dword [edx], ecx
or eax, eax
sub esi, 0x32cfdbd2
mov edi, 0x9ee4ffd9
inc edx
inc eax
or esi, edi
mov edi, 0xd5fa0246
inc ebx
not eax
mov eax, 0x9485cf2e
mov esi, 0x4ef17563
cmp edx, entry0
jl 0xa78a1f
mov eax, 0x825dec87
and eax, esi
add eax, edi
not esi
add ecx, 1
not edi
mov esi, 0xa7898e
dec ecx
add edx, edi
mov edx, 0xfe2390c0
mov esi, dword [esi]
sub ecx, 0xd061b854
sub edx, edi
sub edx, ebx
mov esi, dword [esi]
sub ecx, edx
sub ecx, ebx
sub esp, 4
mov dword [esp], esi
add edx, edi
sub ecx, ebx
mov esi, 0xa7898a
or ecx, edx
dec edi
mov ebx, edi
mov esi, dword [esi]
mov ecx, 0x2f807ca
mov edi, ebx
mov esi, dword [esi]
add ebx, 0x2186e602
mov ebx, ecx
dec edi
push 0xa78992
and ebx, edx
add edx, edi
call esi
or edi, ecx
sub edi, ebx
pop esi
not edx
or edx, ecx
push 0xa7899f
inc ebx
sub ebx, edi
push eax
add ecx, 1
add edi, edi
call esi
add edi, edi
sub edx, 0x58735ed9
mov edi, 0x98a60405
push 0x40
mov edx, ecx
mov edi, 0x63259153
push 0x3000
and ebx, edi
add edx, 1
push 0x20000f97
mov ebx, edx
not ebx
mov ecx, edx
push 0
or edi, ecx
inc edi
not edi
call eax
sub ecx, 0x983a98aa
mov edi, 0x5a51d4ea
and edx, ebx
add eax, 0x20000efb
mov edi, 0x2ad455f9
and edx, edi
mov esi, 0x2fd16432
sub ebx, 0x74621bfc
sub edx, 0x26cc6f
mov dword [eax], esi
inc edx
sub edx, ebx
mov esi, dword [eax]
sub edx, ebx
add ecx, edx
cmp esi, 0x2fd16432
je 0xa78b70
mov ebx, 0
mov edx, dword [ebx]
add edi, ebx
or ecx, edi
inc edi
mov edx, ebx
inc edi
mov esi, ebx
or ebx, ebx
mov eax, section.UPX1
and esi, esi
sub ebx, esi
inc ebx
mov ecx, 0xa78795
add esi, esi
add ebx, esi
add esi, esi
mov edi, 0
dec ebx
or esi, esi
mov edx, 0xa78796
inc esi
dec esi
lea edx, [edi + edx]
and ebx, esi
mov esi, ebx
add esi, ebx
mov edx, dword [edx]
dec ebx
inc esi
mov ebx, 0x64a265a0
and edx, 0xff
add ebx, 0x19cd7457
and esi, ebx
add edi, 1
add ebx, 0xcd253de5
dec ebx
cmp edi, 0x1f4
jne 0xa78bda
mov edi, 0
sub ebx, esi
inc ebx
dec ebx
sub ebx, esi
add ebx, esi
xor dword [eax], edx
add ebx, 0x4bfc0314
mov ebx, esi
add eax, 2
mov esi, 0x390b04bf
not esi
cmp eax, ecx
jl 0xa78b99
add ebx, ebx
inc ebx
mov ebx, esi
add ebx, ebx
inc esi
mov edi, section.UPX1
sub esi, ebx
add ebx, 0x1184a52a
mov ecx, section.UPX1
inc esi
add esi, 0x36482e1c
mov edx, 0xa78795
inc ebx
add ebx, ebx
sub ebx, esi
mov eax, 0
add esi, 0x9e7dfab8
sub esi, ebx
mov esi, ebx
mov al, byte [ecx]
add ebx, 0xd21251e9
dec esi
mov byte [edi], al
sub ebx, esi
inc esi
inc edi
mov ebx, 0x12bb5c6d
or esi, ebx
add ecx, 2
sub esi, 1
inc esi
inc ebx
cmp ecx, edx
jle 0xa78c3b
inc ebx
and esi, ebx
sub ebx, 1
sub ebx, esi
add esi, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
sub esi, ebx
sub esi, 0xddae0dad
sub esi, ebx
ret