Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xef58e343
or ecx, esi
dec esi
and esi, ecx
popal
mov ecx, esi
add esi, 1
mov eax, 0
mov edx, edi
dec ecx
add ecx, 0x73efef43
mov esi, edx
inc ebx
and ebx, ebx
mov edi, esi
sub ecx, 1
sub ebx, 0x3fae84b7
dec ecx
add eax, 1
add ebx, ecx
sub ecx, 1
mov ecx, ebx
cmp eax, 0x100fa9a
jne 0xa789c5
mov ecx, ebx
or ebx, ebx
inc ebx
mov ecx, 0x9699dc28
or ecx, esi
mov edx, 0xa78796
mov eax, 0x44bba300
or edi, eax
mov ebx, 0xa7898a
sub eax, 0x750e4a2f
add edi, 1
mov ecx, dword [edx]
dec edi
mov edi, 0xe3c6ca13
add edi, 1
and ecx, 0xff
mov edi, esi
mov eax, edi
xor dword [ebx], ecx
sub edi, 0x3fe9cfdc
add eax, eax
sub edi, eax
inc ebx
or edi, eax
add eax, eax
inc edx
sub eax, 0xe67949fd
sub eax, 0x8cf5d96f
inc eax
cmp ebx, entry0
jl 0xa78a27
not eax
inc edi
mov eax, edi
inc edi
dec esi
mov edx, edi
inc edx
mov ecx, 0xa7898e
or esi, esi
mov edi, 0xd4ba8488
mov edi, 0xad7f06fa
mov ecx, dword [ecx]
and edi, edi
and ebx, edi
mov ecx, dword [ecx]
inc edx
sub esi, 0xf025b563
push ecx
inc ebx
or esi, edi
and ebx, ebx
mov ecx, 0xa7898a
mov esi, ebx
mov ebx, edi
not edi
mov ecx, dword [ecx]
add esi, edi
dec edi
mov ecx, dword [ecx]
and edx, edx
mov ebx, 0xfd30dc47
not edi
push 0xa78992
mov edi, ebx
add edi, ebx
call ecx
mov edx, edi
not edx
pop ecx
sub edi, 0x7e2c17c
dec ebx
sub edx, ebx
sub esp, 4
mov dword [esp], 0xa7899f
add ebx, 0x7965b6cb
sub edx, 1
mov ebx, edi
sub esp, 4
mov dword [esp], eax
sub ebx, 0x823c6fc3
add esi, esi
or esi, esi
call ecx
sub ebx, 0x4b459ea
add edi, 0xdd3a3e2f
push 0x40
not edx
sub edx, esi
push 0x3000
add edx, 0xc4d82133
inc edx
push 0x20000385
sub esi, 0xbb415f85
add esi, 0xcc390b16
push 0
inc edx
add ebx, ebx
add esi, ebx
call eax
sub esi, edx
mov edi, edx
add eax, 0x200002c6
and esi, edi
or edi, edi
mov ecx, 0x9a8b77b4
or esi, esi
dec edx
mov dword [eax], ecx
add edx, ebx
mov edx, 0x52b71168
not edx
mov ecx, dword [eax]
add edi, ebx
add ebx, 1
mov ebx, esi
cmp ecx, 0x9a8b77b4
je 0xa78b72
mov ecx, 0
mov dword [ecx], edx
and edx, edi
and edi, edi
mov ebx, edx
sub edx, 0x70b9ba72
sub ecx, esi
and ecx, esi
mov edx, section.UPX1
mov ecx, esi
add ecx, 0x6274c68c
mov ecx, esi
mov eax, 0xa78795
not ecx
mov esi, 0xe2f544da
mov esi, ecx
mov ebx, 0
not ecx
and esi, ecx
mov edi, 0xa78796
mov esi, 0xa006b120
mov esi, 0x247ee9f0
add ecx, 0xf4039c17
lea edi, [ebx + edi]
or esi, ecx
mov ecx, esi
mov edi, dword [edi]
sub ecx, esi
not ecx
or esi, esi
and edi, 0xff
and ecx, esi
mov esi, 0x96036d13
mov esi, 0x9b34cb8b
inc ebx
or ecx, esi
mov esi, ecx
and esi, ecx
cmp ebx, 0x1f4
jne 0xa78bf2
mov ebx, 0
and esi, ecx
sub ecx, esi
add esi, 0x6a003123
add esi, 0x231534bf
not ecx
xor dword [edx], edi
add ecx, esi
mov ecx, 0x62f7e0ad
add edx, 2
dec esi
dec ecx
cmp edx, eax
jl 0xa78ba8
dec ecx
inc esi
mov esi, ecx
dec ecx
inc ecx
mov eax, section.UPX1
add ebx, edi
add edi, 0xae2979a0
mov edx, section.UPX1
add ebx, ebx
or ebx, ebx
mov esi, 0xa78795
add ebx, 0x3acab108
and edi, ebx
mov ecx, 0
and edi, edi
inc edi
not ebx
mov cl, byte [edx]
dec edi
sub ebx, edi
mov byte [eax], cl
dec edi
sub edi, ebx
add edi, edi
inc eax
mov ebx, edi
inc ebx
dec edi
add edx, 2
inc edi
add edi, 0xe76ada4
add ebx, 0xea495424
cmp edx, esi
jle 0xa78c50
add edi, edi
not ebx
inc edi
dec esi
not esi
and ecx, esi
push 0x8dc6a0
add ecx, 0x539933be
add ecx, ecx
ret