Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb8b5b895
or ecx, eax
inc ecx
popal
dec eax
dec ecx
or eax, eax
mov edi, 0
mov edx, eax
sub esi, 0x35dd066e
sub ecx, 0x8d4db686
and ecx, ecx
mov ebx, edx
or esi, ecx
and esi, esi
add esi, esi
mov eax, ebx
or ecx, ecx
dec esi
add edi, 1
and ecx, ecx
or esi, esi
sub ecx, 0xd9ef17b8
cmp edi, 0x100f2d4
jne 0xa789bf
dec ecx
add ecx, esi
sub eax, ecx
sub eax, ecx
mov esi, 0xa78796
add eax, 0x20829a83
sub eax, 0x290096db
mov ecx, ebx
mov edi, 0xa7898a
mov eax, 0x20b4d99e
mov eax, ecx
and ebx, ebx
mov edx, dword [esi]
sub ecx, 0xd80e085a
not ebx
and edx, 0xff
or ecx, ecx
sub eax, ecx
add ecx, 0x1f03ced0
xor dword [edi], edx
sub ecx, 0x197a1eb1
add ecx, ecx
add eax, 0xc9a9637d
inc edi
add ebx, 0x2ff1a240
dec eax
and ecx, ebx
inc esi
sub ebx, 0x5a182856
or ecx, ebx
mov eax, 0xf4e014e0
cmp edi, entry0
jl 0xa78a20
not ebx
not ebx
not ecx
dec ecx
add ebx, ebx
inc edi
or esi, edx
add edi, 1
mov ecx, 0xa7898e
sub esi, 1
or ebx, edx
mov ecx, dword [ecx]
add edx, 0x2392fa47
add ebx, edi
add ebx, ebx
mov ecx, dword [ecx]
and ebx, esi
mov edx, ebx
sub esp, 4
mov dword [esp], ecx
and esi, edi
and edi, edi
add edi, esi
mov ecx, 0xa7898a
add esi, edx
add edi, ebx
mov ecx, dword [ecx]
mov edi, 0xbc6ec2cd
dec esi
add edi, ebx
mov ecx, dword [ecx]
sub edi, 0xa43c3203
dec edi
add edx, ebx
push 0xa78992
and esi, ebx
add esi, ebx
call ecx
not esi
mov edx, esi
sub ebx, 0x68750330
pop ecx
and edi, edx
sub edx, 0x23f0a7a4
sub edi, edx
push 0xa7899f
mov edi, 0xfa921aa2
not edx
push eax
sub edx, 0xd654f923
sub ebx, 0xdd324b0b
mov esi, 0x7b80b8da
call ecx
mov esi, edx
and edx, esi
sub esp, 4
mov dword [esp], 0x40
dec esi
add edx, edi
sub ebx, edx
sub esp, 4
mov dword [esp], 0x3000
mov esi, ebx
and ebx, edx
sub esp, 4
mov dword [esp], 0x2000064b
sub edx, 1
mov edx, 0x4904c682
and edx, edx
sub esp, 4
mov dword [esp], 0
or ebx, edi
add edi, 0xad6ba539
call eax
not edx
mov ebx, 0x1c88f6d9
add eax, 0x200005bd
dec edi
inc edi
mov ecx, 0x1565da0c
mov edx, 0xe1a9731
and esi, edx
mov dword [eax], ecx
sub edx, esi
not edx
sub ebx, esi
mov ecx, dword [eax]
dec esi
and edi, edi
mov ebx, edx
cmp ecx, 0x1565da0c
je 0xa78b8e
mov edx, 0
mov cl, byte [edx]
mov edx, 0xcf24145c
inc ebx
or edi, edx
sub edi, edx
add edi, 0x2782785e
add ecx, eax
mov eax, ecx
and eax, eax
mov ebx, section.UPX1
dec eax
not ecx
mov eax, ecx
mov edx, 0xa78795
sub eax, ecx
not eax
mov edi, 0
mov ecx, eax
sub ecx, 0x42c5c0bf
or ecx, ecx
mov esi, 0xa78796
mov eax, ecx
or eax, ecx
or eax, eax
lea esi, [edi + esi]
add eax, 0xe33cb0ed
not ecx
not eax
mov esi, dword [esi]
inc eax
mov eax, 0xe1daafd3
and esi, 0xff
and eax, eax
sub eax, 0xea4edfeb
add ecx, eax
inc edi
sub eax, 0x7401da39
mov ecx, eax
cmp edi, 0x1f4
jne 0xa78c0c
mov edi, 0
mov eax, 0xa741e673
or ecx, eax
inc eax
mov eax, 0xf111a1f1
sub ecx, 0x28fd30da
xor dword [ebx], esi
sub ecx, eax
sub eax, 0xcee3f814
add ecx, eax
add ebx, 2
add eax, 1
sub eax, ecx
mov ecx, 0x60259b29
cmp ebx, edx
jl 0xa78bc6
add ecx, ecx
or eax, eax
dec ecx
mov eax, ecx
mov edi, section.UPX1
mov edx, 0x2ebab611
inc edx
dec edx
mov esi, section.UPX1
dec edx
inc eax
or edx, edx
mov ecx, 0xa78795
and edx, eax
add eax, edx
mov edx, eax
mov ebx, 0
sub edx, 0xdbdebb33
mov eax, 0x9bc51b8
mov bl, byte [esi]
add eax, 0xbef75418
add edx, 0x5da41319
mov byte [edi], bl
inc edx
add edx, 1
add eax, edx
inc edi
not edx
dec edx
add esi, 2
inc edx
sub eax, edx
cmp esi, ecx
jle 0xa78c7d
mov edx, eax
mov edx, 0xef320312
add edx, 0x8fb193be
sub ecx, 0xd7755d4f
and ecx, eax
push 0x8dc6a0
sub eax, 0xc64c06fc
not ecx
inc ecx
ret