Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x43f42c3e
mov ecx, 0x32184609
add ecx, 0xa3b6f6cf
popal
or ebx, ebx
mov ebx, 0xb9f2de41
mov eax, 0
mov ebx, edx
inc edi
inc ecx
mov esi, ebx
not edi
sub edi, 0xa7c5c4ca
and edi, ecx
mov edx, esi
or edi, edi
mov edi, 0xb456225f
add ecx, 0x8f4e9882
add eax, 1
mov edi, ecx
add edi, 1
not ecx
cmp eax, 0x1004b38
jne 0xa789ca
mov edi, 0xb83000d4
not edi
or ecx, edi
add ebx, ebx
sub ecx, 0xa7bd6429
mov edi, 0xa78796
sub edx, 1
sub eax, 0x4324b77f
mov ebx, 0xa7898a
dec edx
sub eax, esi
mov edx, 0x1a62c362
mov ecx, dword [edi]
add edx, 1
sub esi, 0xe8f3f6f3
and ecx, 0xff
and edx, edx
add esi, 0xac852f43
or esi, eax
xor dword [ebx], ecx
add eax, eax
inc eax
mov esi, 0x7046e244
inc ebx
mov edx, eax
mov esi, 0x9447c8da
not esi
inc edi
add esi, 1
not edx
sub edx, eax
cmp ebx, entry0
jl 0xa78a34
mov esi, 0xd9f6d253
or eax, edx
add esi, esi
mov edx, esi
dec edx
inc ecx
dec ecx
mov ebx, 0xa7898e
not edi
sub edi, ecx
mov ebx, dword [ebx]
or ecx, edi
add edx, 0x95ea0dc6
sub edi, 0x61696907
mov ebx, dword [ebx]
add edi, 0xa36691be
and edi, ecx
sub esp, 4
mov dword [esp], ebx
and esi, edi
add edi, edi
add ecx, esi
mov ebx, 0xa7898a
add edi, 0x9fb07c2c
inc edx
mov ebx, dword [ebx]
sub edi, 0xdce1115c
inc ecx
mov ebx, dword [ebx]
not edx
mov esi, ecx
push 0xa78992
not esi
or edi, edx
add esi, 0x24b1b289
call ebx
add edi, 0x26ff0db9
and esi, ecx
and edx, esi
pop ebx
sub edi, edx
add edx, 0x769adc49
sub esp, 4
mov dword [esp], 0xa7899f
dec esi
sub esi, edi
sub esi, edx
sub esp, 4
mov dword [esp], eax
inc esi
sub ecx, 0x2809f667
or edx, edi
call ebx
add edx, 0x976b3532
add ecx, esi
dec edi
push 0x40
sub esi, edx
or esi, edx
push 0x3000
dec ecx
inc edx
push 0x2000018c
mov ecx, edx
and edi, edx
sub esp, 4
mov dword [esp], 0
add ecx, ecx
sub ecx, esi
call eax
add esi, 1
add ecx, edi
add eax, 0x20000123
add edx, edi
add edi, 0xe6fafe4b
mov ebx, 0xaecab55e
add esi, 0xfbdc564f
add esi, 0xd93f4467
mov ecx, esi
mov dword [eax], ebx
sub edi, 1
add edx, edi
mov ebx, dword [eax]
and edi, edi
not esi
inc edi
cmp ebx, 0xaecab55e
je 0xa78b94
mov edx, 0
mov dword [edx], ecx
sub edx, ecx
sub ecx, 0x6318aafa
sub edx, edi
sub edi, 0x38961641
mov edi, edx
not edx
not ebx
inc ebx
mov edi, section.UPX1
not ecx
mov ebx, 0xc903637e
mov eax, 0xa78795
sub ecx, 0x876fe9a4
sub ecx, 0xa78177b9
mov edx, 0
or ecx, ecx
not ebx
mov ecx, ebx
mov esi, 0xa78796
mov ecx, 0xa532c996
mov ecx, ebx
add ebx, 0x5259f341
lea esi, [edx + esi]
not ecx
or ebx, ebx
mov esi, dword [esi]
dec ebx
sub ecx, 0x898036ee
sub ecx, ebx
and esi, 0xff
add ecx, 0xd3d5dc94
mov ecx, ebx
add edx, 1
or ebx, ebx
add ebx, 0x97e89a4e
cmp edx, 0x1f4
jne 0xa78c20
mov edx, 0
sub ecx, ebx
sub ebx, 0xb13ad25f
sub ecx, ebx
add ecx, 1
xor dword [edi], esi
mov ebx, ecx
sub ebx, ecx
add edi, 2
and ecx, ebx
and ecx, ecx
cmp edi, eax
jl 0xa78bd3
add ebx, 0x657d02e8
add ebx, 1
sub ebx, ecx
mov ebx, 0x72c91c46
sub ecx, 0xbcb51f7d
sub ebx, ecx
mov ecx, section.UPX1
inc edi
sub edi, edx
sub edi, edx
mov esi, section.UPX1
inc edx
sub edx, 0xffdb71c
not edx
mov ebx, 0xa78795
sub edi, edx
sub edi, edx
mov eax, 0
dec edi
or edx, edi
mov al, byte [esi]
mov edi, 0x4f89467a
dec edx
add edi, edx
mov byte [ecx], al
add edx, edi
add edx, 0x28539055
and edi, edi
add ecx, 1
add edx, 0xdec8ee60
inc edx
sub edi, 0x21ce5bf4
add esi, 2
mov edi, edx
or edx, edx
cmp esi, ebx
jle 0xa78c8c
sub edx, edi
dec edx
not edi
and ebx, ecx
or ebx, ecx
push 0x8dc6a0
inc ebx
add ecx, ebx
mov ecx, ebx
ret