Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xec0faadf
not esi
mov esi, ecx
and esi, ecx
popal
not esi
and esi, ecx
mov ecx, 0
mov edx, edi
sub ebx, 0xf05b49b5
or ebx, ebx
mov esi, edx
mov eax, ebx
add eax, ebx
not eax
mov edi, esi
add ebx, 0xa2471d83
inc ebx
inc ecx
not eax
mov ebx, eax
sub eax, 0x2d0946a9
cmp ecx, 0x1002bd1
jne 0xa789c2
and eax, ebx
sub eax, 1
or eax, eax
mov ecx, 0xb896779c
and ecx, esi
mov esi, ecx
mov edx, 0xa78796
sub eax, 0x1579e166
inc edi
sub eax, 0x8bfd5270
mov esi, 0xa7898a
sub edi, 0x7047bd6b
mov edi, eax
mov ebx, dword [edx]
or edi, eax
and edi, edi
add eax, 0x6b76dee7
and ebx, 0xff
or ecx, ecx
mov ecx, eax
xor dword [esi], ebx
sub ecx, 0x475cdd8e
add eax, 0xf01c647d
inc esi
sub edi, 1
add ecx, edi
inc edx
add edi, 0xc992e0fc
dec edi
cmp esi, entry0
jl 0xa78a26
add ecx, 0xd01f99a8
sub ecx, edi
sub eax, ecx
or ecx, edi
add esi, 0xfca67e30
and edi, ebx
not edi
mov ecx, 0xa7898e
dec esi
sub esi, 0x5897f2c5
mov ecx, dword [ecx]
inc esi
or edx, edi
mov ecx, dword [ecx]
add edi, 0x2c81d50
mov esi, ebx
add esi, ebx
push ecx
add ebx, ebx
mov esi, 0x63812f2b
sub ebx, 1
mov ecx, 0xa7898a
inc esi
or ebx, edx
mov edx, 0x44282053
mov ecx, dword [ecx]
add esi, ebx
sub ebx, edx
mov ecx, dword [ecx]
add edi, ebx
not edi
and edi, ebx
sub esp, 4
mov dword [esp], 0xa78992
mov ebx, 0xadd62cfe
or edi, esi
call ecx
and edx, esi
and edx, edx
add esi, 0xdfca9b41
mov ecx, dword [esp]
add esp, 4
or edi, edi
mov esi, edi
push 0xa7899f
inc esi
sub ebx, 1
not edi
sub esp, 4
mov dword [esp], eax
and ebx, edx
add ebx, 0x7a50835
call ecx
add edx, 0x7220dca4
mov ebx, edx
not edx
push 0x40
add edi, edx
dec ebx
and esi, edx
push 0x3000
or esi, ebx
mov edx, esi
or esi, ebx
push 0x2000026c
and edi, esi
sub esi, 0x8d19f752
or edi, esi
sub esp, 4
mov dword [esp], 0
sub edi, ebx
and esi, esi
not ebx
call eax
or edi, esi
sub esi, edi
add eax, 0x200001af
not edx
and esi, ebx
sub edi, 0xdff4567b
mov ecx, 0x914a0929
and esi, edx
sub edi, 0x2c8eb182
mov dword [eax], ecx
dec ebx
dec edx
mov ecx, dword [eax]
mov ebx, edx
sub esi, 0x6a5783dc
add ebx, esi
cmp ecx, 0x914a0929
je 0xa78b88
mov ebx, 0
mov dword [ebx], edx
inc edx
sub edx, 0x515d9b53
mov ebx, esi
inc esi
sub edi, 1
inc esi
not ecx
add ecx, esi
mov ebx, section.UPX1
dec esi
add esi, 0x8f9c035e
mov edi, 0xa78795
inc ecx
dec ecx
and esi, ecx
mov eax, 0
and esi, ecx
inc ecx
or esi, ecx
mov edx, 0xa78796
add ecx, 0x6baedb46
or esi, esi
and esi, ecx
lea edx, [eax + edx]
not esi
inc ecx
mov edx, dword [edx]
dec esi
not ecx
and esi, esi
and edx, 0xff
or esi, esi
mov esi, 0x2e47c296
inc eax
add ecx, ecx
dec ecx
add esi, 0xcefb5973
cmp eax, 0x1f4
jne 0xa78bfc
mov eax, 0
and esi, esi
sub ecx, 0xfe6ca28e
dec ecx
and esi, esi
add esi, 0x7c550aa
xor dword [ebx], edx
mov ecx, 0xedd7dfb3
sub ecx, 1
not esi
add ebx, 2
inc esi
add ecx, 0x6ce7b7e2
sub esi, 0x22bb1d5f
cmp ebx, edi
jl 0xa78bbc
mov ecx, 0xf102b00f
and esi, esi
add esi, 0x9ec77559
inc ecx
and ecx, ecx
mov esi, section.UPX1
add edx, ebx
sub edx, ebx
mov edi, section.UPX1
mov edx, ebx
and edx, edx
sub edx, ebx
mov eax, 0xa78795
mov ebx, edx
mov ebx, 0x6e91afaa
mov ecx, 0
sub edx, 0xa3c73df3
sub ebx, edx
not edx
mov cl, byte [edi]
not edx
add ebx, 0xc0fc4667
mov byte [esi], cl
or ebx, ebx
dec ebx
dec edx
add esi, 1
not edx
sub edx, 1
add edi, 2
sub ebx, 0xb06d6f62
mov edx, 0xd53fe0d7
cmp edi, eax
jle 0xa78c76
mov edx, ebx
sub ebx, 0x431ffc96
sub ecx, 0xbd6cc162
not ecx
push 0x8dc6a0
mov esi, ecx
and ecx, esi
sub ecx, esi
ret