Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x50b83783
not eax
sub eax, ebx
popal
sub ebx, eax
sub eax, ebx
add ebx, 0xc62c31dc
mov ecx, 0
mov ebx, eax
mov esi, edx
inc edx
mov edi, ebx
not edx
or edx, esi
mov eax, edi
mov edx, 0xcb603eea
add edx, edx
dec edx
add ecx, 1
sub edx, esi
sub edx, esi
or esi, edx
cmp ecx, 0x100f8bc
jne 0xa789c6
sub edx, esi
add edx, edx
and edx, edx
sub ebx, 0xab01efeb
mov eax, 0xc7a7b3e5
mov edi, 0xa78796
or ebx, edx
sub ebx, eax
add edx, ebx
mov ecx, 0xa7898a
mov eax, 0x6065ed61
sub ebx, 0xfd3ebdc0
mov esi, dword [edi]
sub eax, ebx
mov edx, eax
and esi, 0xff
add eax, ebx
not ebx
mov edx, 0xbd10191
xor dword [ecx], esi
not edx
dec edx
inc ecx
mov eax, edx
dec eax
inc edi
mov eax, ebx
sub edx, eax
or edx, ebx
cmp ecx, entry0
jl 0xa78a1f
and ebx, eax
inc ebx
and ebx, ebx
and eax, edx
sub esi, edi
mov edx, esi
mov ecx, 0xa7898e
mov ebx, esi
sub esi, edi
mov edx, 0x96461197
mov ecx, dword [ecx]
add edi, 0xcbca4bcf
mov esi, edi
not ebx
mov ecx, dword [ecx]
mov edx, esi
sub edx, ebx
mov esi, edi
push ecx
dec ebx
sub edx, 1
mov edx, ebx
mov ecx, 0xa7898a
sub edi, 0xb6e6f6ce
not esi
mov ecx, dword [ecx]
and esi, edi
and ebx, esi
mov ecx, dword [ecx]
add ebx, 0x7e5ea48c
sub esi, 0x8c46744a
push 0xa78992
sub edx, ebx
sub ebx, 0xad35cd4
call ecx
or edx, edx
and ebx, esi
pop ecx
inc edx
and edi, edx
sub ebx, 0x98e3f87d
push 0xa7899f
add edi, 0x6fe4501c
and esi, esi
mov esi, ebx
push eax
dec ebx
dec esi
sub edx, 0x5867954f
call ecx
not ebx
and ebx, edx
sub esp, 4
mov dword [esp], 0x40
mov edx, edi
mov edx, 0x7dbe6896
sub esp, 4
mov dword [esp], 0x3000
add edx, 0x388bc5f9
add esi, 1
add edx, 0xb4d3656d
push 0x20000b8d
dec ebx
add edi, edx
sub esi, 1
push 0
sub esi, edi
sub esi, 0xab9820b2
and ebx, esi
call eax
inc ebx
inc edx
add eax, 0x20000b15
add edx, edx
not ebx
not ebx
mov ecx, 0x792b77cd
mov esi, 0x6dcf32ff
add edi, edi
sub edi, esi
mov dword [eax], ecx
sub edi, edx
or ebx, edi
mov ecx, dword [eax]
dec esi
add ebx, edx
cmp ecx, 0x792b77cd
je 0xa78b65
mov eax, 0
mov dl, byte [eax]
and edi, esi
add ebx, 0x358f468b
and edx, edi
and ebx, esi
and edx, esi
or ebx, ebx
sub eax, 0x856c90ad
add ebx, 0x5cd9f7c9
mov edi, section.UPX1
inc ebx
dec ebx
mov eax, 0x49894110
mov ecx, 0xa78795
or eax, ebx
sub eax, ebx
mov esi, 0
add eax, 0x94e3c974
mov eax, ebx
mov edx, 0xa78796
mov ebx, eax
and eax, ebx
add eax, 0x9a695703
lea edx, [edx + esi]
sub ebx, 0xa70f9804
mov eax, 0xc6b64f59
mov edx, dword [edx]
mov eax, 0xd578713c
mov ebx, 0x54e9122
and edx, 0xff
mov ebx, 0xda3855d9
and ebx, ebx
inc esi
dec ebx
sub eax, 0x3b3c359e
cmp esi, 0x1f4
jne 0xa78bee
mov esi, 0
add eax, ebx
sub ebx, eax
inc eax
add eax, 1
mov eax, 0xb424db27
xor dword [edi], edx
or ebx, ebx
mov eax, ebx
add edi, 2
add ebx, ebx
not ebx
cmp edi, ecx
jl 0xa78ba3
or ebx, ebx
and ebx, ebx
add ebx, 0xcf8f02af
mov ebx, eax
and eax, eax
mov edx, section.UPX1
add ebx, 0x296fd35d
inc ebx
mov esi, section.UPX1
sub ecx, ebx
dec ebx
sub ebx, 0x9e65a3f7
mov edi, 0xa78795
and ecx, ecx
or ebx, ebx
dec ebx
mov eax, 0
mov ecx, ebx
dec ebx
mov ebx, ecx
mov al, byte [esi]
sub ecx, ebx
add ecx, ecx
mov ebx, ecx
mov byte [edx], al
mov ebx, 0xbba2a92a
inc ecx
add ebx, ebx
inc edx
sub ecx, ebx
add ecx, ebx
add esi, 2
sub ebx, ecx
mov ebx, 0xee91e817
cmp esi, edi
jle 0xa78c52
dec ebx
or ebx, ebx
mov ecx, ebx
mov eax, 0x17adcc00
or ebx, ebx
push 0x8dc6a0
dec ebx
sub eax, 1
ret