Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xda2bd25b
dec ebx
or ebx, eax
popal
not ebx
add ebx, eax
mov esi, 0
mov edx, edi
inc eax
mov ecx, 0x107e5291
sub eax, ecx
mov ebx, edx
or ecx, ecx
add ecx, ecx
mov ecx, eax
mov edi, ebx
mov ecx, eax
or ecx, eax
sub ecx, eax
inc esi
add ecx, eax
add eax, eax
cmp esi, 0x1007b97
jne 0xa789bf
not eax
not eax
add eax, eax
sub ebx, 1
mov ebx, 0xa78796
mov edi, edx
sub edx, ecx
mov esi, 0xa7898a
mov edx, ecx
sub edx, 0xa7f61941
mov eax, dword [ebx]
sub edx, 0x39bdb76f
and edi, edi
mov edi, 0x94ff45ea
and eax, 0xff
dec ecx
not edi
not edx
xor dword [esi], eax
inc edi
sub ecx, 0x72d410b9
add esi, 1
dec edi
add ecx, edx
add ebx, 1
add edi, edx
sub edi, ecx
add ecx, 0xfcad2a71
cmp esi, entry0
jl 0xa78a0c
add edi, 1
mov edi, edx
add edx, 0xb01fece2
sub edi, 0xa37e3353
not edx
dec edx
dec edi
or esi, ebx
mov ecx, 0xa7898e
not edx
sub edx, esi
mov edi, ebx
mov ecx, dword [ecx]
sub edi, ebx
sub esi, ebx
add ebx, edx
mov ecx, dword [ecx]
add edx, edi
sub edi, 0x7a2df1c6
add edi, ebx
push ecx
sub ebx, 0xc3c41659
and ebx, esi
mov ecx, 0xa7898a
or ebx, esi
not edx
mov ecx, dword [ecx]
not edi
inc edx
mov ecx, dword [ecx]
inc ebx
mov esi, edi
push 0xa78992
and edi, ebx
inc edi
call ecx
add edi, esi
add ebx, edx
mov ecx, dword [esp]
add esp, 4
sub esi, ebx
mov edx, 0xeac3df4e
sub edx, ebx
push 0xa7899f
and ebx, esi
and edx, ebx
push eax
not ebx
inc edx
call ecx
not ebx
inc edi
mov edx, 0x1377e6b9
push 0x40
not edi
not edi
add esi, ebx
push 0x3000
sub edi, 0x98b5ee60
add ebx, 0x6b9672bc
push 0x200003e3
mov edi, edx
dec edx
push 0
or edx, esi
sub edi, 1
call eax
mov ebx, 0x3fc61d41
sub edi, esi
inc edi
add eax, 0x2000032f
sub esi, 0xd0624490
add edi, 0xcbc82248
mov ecx, 0x3ed2724f
add ebx, 1
add ebx, 1
mov edx, ebx
mov dword [eax], ecx
and ebx, edi
or edi, esi
mov ecx, dword [eax]
add esi, edi
mov esi, 0xa30761ed
add edi, 0x9eba4829
cmp ecx, 0x3ed2724f
je 0xa78b61
mov ecx, 0
mov dword [ecx], ebx
dec edi
not edx
sub edx, 0x85ae6f8e
mov ebx, 0x5bcde05c
sub ebx, eax
not ebx
mov edx, section.UPX1
inc ebx
mov eax, ebx
sub ebx, 0xdebdd1f9
mov esi, 0xa78795
add ebx, 0x3ef6bf92
mov eax, ebx
not eax
mov ecx, 0
sub eax, 0x1f01c124
and ebx, ebx
mov edi, 0xa78796
dec eax
sub ebx, 0xe3884121
lea edi, [edi + ecx]
add eax, eax
not ebx
mov edi, dword [edi]
mov eax, ebx
add ebx, 0xb8d89d0f
and edi, 0xff
and ebx, eax
mov ebx, 0xf2e7095f
inc ecx
add ebx, 0x5d9b6928
and eax, eax
cmp ecx, 0x1f4
jne 0xa78bdd
mov ecx, 0
mov ebx, 0x90f119f7
sub eax, ebx
sub ebx, 0x59e405e9
sub ebx, 0x483871ff
mov ebx, 0x6cf7677b
xor dword [edx], edi
not ebx
inc ebx
and eax, ebx
add edx, 2
sub eax, 0x40baf172
dec ebx
or eax, eax
cmp edx, esi
jl 0xa78b9d
dec eax
mov ebx, eax
add ebx, eax
mov eax, ebx
sub ebx, 0xcbe71646
or ebx, ebx
mov eax, section.UPX1
mov esi, ebx
dec ebx
mov edi, section.UPX1
dec esi
add esi, 1
mov ecx, 0xa78795
and esi, esi
mov ebx, esi
add esi, 0x364ab227
mov edx, 0
not esi
and esi, esi
mov dl, byte [edi]
sub esi, 0xd48f2f52
or ebx, esi
mov byte [eax], dl
or ebx, esi
add esi, 1
and ebx, ebx
inc eax
mov esi, ebx
add ebx, 0x50e24f27
add edi, 2
add ebx, 0x49e3b4f8
add ebx, 0x5491b550
cmp edi, ecx
jle 0xa78c4e
add ebx, 0xc9c02ff9
dec ebx
mov eax, ebx
sub ebx, eax
push 0x8dc6a0
sub eax, 0x54cc0ea8
mov ebx, 0xcc0278ff
ret