Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5d55e5bc
mov ecx, eax
not eax
mov eax, ecx
popal
and eax, eax
or eax, eax
and eax, eax
mov edx, 0
mov ecx, ebx
add edi, 0x2c43077e
sub edi, 0x170b47fc
or edi, edi
mov esi, ecx
sub eax, 0xcd5f04dc
mov edi, 0xc7415471
sub eax, 0x7af0a63a
mov ebx, esi
add edi, edi
add edi, edi
inc edx
not edi
and edi, eax
cmp edx, 0x100a758
jne 0xa789c4
inc eax
dec edi
mov eax, 0x3c2a69a
add ecx, ecx
mov eax, ecx
mov eax, 0xa78796
mov edx, 0x82094e46
sub esi, ebx
sub esi, 0xe1387f7c
mov edi, 0xa7898a
mov esi, edx
and ebx, edx
mov ecx, dword [eax]
add ebx, edx
mov ebx, esi
and ecx, 0xff
mov esi, edx
mov ebx, 0x9c3e3e72
xor dword [edi], ecx
dec ebx
and edx, ebx
not edx
inc edi
mov esi, 0x495ff1fb
sub edx, 0xd4b3a16a
inc eax
dec edx
sub esi, edx
cmp edi, entry0
jl 0xa78a24
sub esi, 0xeba22b05
inc edx
dec edx
inc esi
inc ecx
mov edi, 0x47a66c6
mov edx, 0xa7898e
or esi, edi
mov ebx, 0x52d022a0
mov edx, dword [edx]
sub ebx, esi
mov edi, 0xd78ee7d8
mov edx, dword [edx]
sub ecx, 1
add esi, edi
add ebx, ebx
push edx
mov ebx, 0x6c8df220
and esi, ebx
add ebx, 1
mov edx, 0xa7898a
inc esi
or ecx, ebx
mov edx, dword [edx]
dec esi
mov edi, 0xc4e48f42
mov edi, 0x477326e8
mov edx, dword [edx]
mov ebx, 0x6588821b
and edi, ecx
or edi, edi
push 0xa78992
and edi, esi
add esi, 0x5c2286ce
not ecx
call edx
inc esi
or ecx, ecx
pop edx
add esi, 0xd66d180f
sub ebx, 0xdbac88c6
add ebx, 1
push 0xa7899f
sub edi, 0x9a7ffd9d
add esi, 0xb44b573
push eax
add ecx, 0x47b97427
and esi, edi
call edx
not edi
mov ecx, ebx
mov ecx, 0x3ee79692
push 0x40
and esi, edi
not esi
add edi, edi
push 0x3000
sub ebx, 0xa353020b
and ebx, ecx
sub esp, 4
mov dword [esp], 0x200006af
not ebx
and esi, ebx
or esi, edi
push 0
mov edi, ebx
sub esi, 0x37d28140
dec ecx
call eax
mov ebx, ecx
not esi
sub ebx, edi
add eax, 0x20000643
sub edi, 0xb167b065
add edi, 0xce4f4ad9
sub ecx, 1
mov edx, 0x5492397b
add ecx, 0x7497455a
or esi, edi
mov ecx, ebx
mov dword [eax], edx
inc ebx
sub esi, 0x546a4a9
sub esi, 0xcdc1cc1c
mov edx, dword [eax]
dec ecx
add ecx, 0xf2489224
cmp edx, 0x5492397b
je 0xa78b90
mov ecx, 0
mov dword [ecx], edx
sub ecx, 0x31877f4a
inc ebx
or ecx, esi
and ecx, ecx
mov ecx, 0x94c6cc41
add eax, 0x272ec4fb
not eax
mov esi, section.UPX1
or eax, eax
and eax, eax
mov edx, 0xa78795
or eax, eax
inc ecx
mov ebx, 0
mov ecx, eax
add eax, 0x49ea4d65
inc ecx
mov edi, 0xa78796
add eax, 0x1a2054ba
not eax
lea edi, [ebx + edi]
dec eax
mov ecx, eax
add ecx, 0xb8a3fffc
mov edi, dword [edi]
sub ecx, eax
sub ecx, 0x885be05c
and edi, 0xff
add ecx, 1
or eax, eax
add ebx, 1
sub eax, ecx
not ecx
sub ecx, 0x1f00463b
cmp ebx, 0x1f4
jne 0xa78c15
mov ebx, 0
mov ecx, eax
sub ecx, 1
or eax, ecx
dec eax
add ecx, 0x1953ad46
xor dword [esi], edi
or eax, eax
or ecx, ecx
add esi, 2
and eax, eax
sub eax, ecx
cmp esi, edx
jl 0xa78bc7
sub eax, 1
mov ecx, 0x50244769
add eax, 0x4b4e4818
add ecx, 1
sub ecx, 0xfdfdee4c
mov ecx, section.UPX1
sub ebx, edx
add edx, 0x10ce3c17
not ebx
mov esi, section.UPX1
dec edx
dec ebx
dec ebx
mov edi, 0xa78795
mov edx, ebx
and edx, edx
mov ebx, edx
mov eax, 0
sub ebx, 1
mov edx, 0xad795d44
mov al, byte [esi]
add ebx, ebx
mov edx, ebx
mov byte [ecx], al
add edx, ebx
mov ebx, 0x47d71f96
mov ebx, 0xc01ae1f7
add ecx, 1
add edx, edx
inc ebx
and ebx, edx
add esi, 2
add ebx, edx
sub edx, 0xb844d78d
cmp esi, edi
jle 0xa78c8d
and edx, edx
sub edx, ebx
sub edx, ebx
sub eax, 1
mov ecx, eax
add eax, eax
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, ecx
mov eax, 0x5df21062
ret