Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa92f1c38
or ebx, esi
sub esi, ebx
popal
sub esi, 0x3d99ee21
and esi, esi
mov edi, 0
mov esi, eax
dec ebx
inc ebx
mov ecx, esi
or ebx, edx
dec edx
and ebx, edx
mov eax, ecx
add ebx, 0x4afc464d
mov ebx, 0x2122a16b
inc edi
add ebx, 0xae223e4b
or edx, ebx
sub edx, ebx
cmp edi, 0x100438c
jne 0xa789c4
or edx, ebx
add edx, 0xe63fc9e4
add edx, 0xe0af4976
mov esi, ebx
and ebx, ebx
mov eax, 0xa78796
sub ebx, edi
dec ebx
mov ecx, 0xa7898a
or esi, ebx
sub esi, edi
add edi, 0x8757f0af
mov edx, dword [eax]
mov ebx, esi
not edi
and edx, 0xff
and esi, ebx
mov esi, 0x7542cc4b
xor dword [ecx], edx
add edi, esi
and esi, edi
mov esi, 0xfded5ea9
inc ecx
mov esi, ebx
and esi, edi
mov edi, ebx
inc eax
add edi, esi
add edi, 0xb75726d6
dec edi
cmp ecx, entry0
jl 0xa78a1c
sub edi, 0xe6f49044
sub ebx, 0x88fc608a
inc ebx
not edi
add esi, 0x75642d9e
add esi, edx
add esi, ecx
mov ebx, 0xa7898e
mov edx, 0x80ffb6fb
and esi, edx
inc edi
mov ebx, dword [ebx]
or edx, esi
add edx, edi
or esi, esi
mov ebx, dword [ebx]
add esi, 0xba5f8658
not edi
push ebx
inc edx
and esi, edi
mov ebx, 0xa7898a
mov esi, edi
sub edx, 0x33eddec3
mov edi, edx
mov ebx, dword [ebx]
dec edx
not esi
add ecx, 0xf2a2a41e
mov ebx, dword [ebx]
mov edi, ecx
or ecx, edi
push 0xa78992
mov esi, 0x59b5f8ba
sub esi, 0xb6dc1896
dec edx
call ebx
inc ecx
or esi, edx
pop ebx
add edi, 0x5540df2
add edi, 0x4ae5e728
sub edi, 0x4dcf946a
push 0xa7899f
sub ecx, esi
or edx, esi
push eax
add esi, 1
add ecx, 0xda26ac36
add edx, edi
call ebx
not ecx
or esi, ecx
push 0x40
or edx, edi
add edi, 0x743ab2b2
mov esi, edi
push 0x3000
and esi, edi
add edx, 0x1df7eb7
add esi, edx
push 0x20000936
not edx
or esi, edi
push 0
mov edx, ecx
and ecx, ecx
and ecx, ecx
call eax
inc edx
sub edi, ecx
add eax, 0x200008a3
dec edx
or edi, edi
mov ebx, 0xa8b4a1c5
or edx, esi
and esi, edx
mov dword [eax], ebx
add edi, 0xed6953ea
sub edi, esi
mov ebx, dword [eax]
mov edx, 0x557dbbc5
and edx, edi
add edx, edx
cmp ebx, 0xa8b4a1c5
je 0xa78b67
mov ecx, 0
mov dword [ecx], edx
sub esi, ecx
and edx, edi
sub esi, 0xdbedab73
or esi, esi
sub esi, ebx
add esi, ebx
mov eax, section.UPX1
mov esi, ebx
and esi, ebx
sub ebx, esi
mov ecx, 0xa78795
inc ebx
inc esi
not ebx
mov edx, 0
sub ebx, 0x2ec3b1e5
sub ebx, esi
mov edi, 0xa78796
add esi, 0xf0c0f5b
mov esi, 0xade509aa
lea edi, [edi + edx]
add esi, 1
not esi
sub ebx, esi
mov edi, dword [edi]
dec esi
add esi, ebx
dec esi
and edi, 0xff
dec ebx
inc esi
add edx, 1
sub esi, 0x452b7feb
inc esi
or esi, ebx
cmp edx, 0x1f4
jne 0xa78bdf
mov edx, 0
mov ebx, 0x45662ce1
and ebx, ebx
inc ebx
add ebx, ebx
mov esi, ebx
mov ebx, esi
xor dword [eax], edi
and esi, ebx
add ebx, 0x64d452da
or esi, esi
add eax, 2
add ebx, 0x6e11a7a2
add esi, esi
and ebx, esi
cmp eax, ecx
jl 0xa78b98
mov ebx, 0x1eedf6d
sub ebx, 0x73352017
or ebx, ebx
sub ebx, 0xe7ecd3f
mov esi, ebx
not ebx
mov ebx, section.UPX1
mov esi, 0x71c7a9a7
sub eax, 1
add eax, 0xc3c12a1
mov edi, section.UPX1
and eax, esi
mov eax, 0x8e4f5291
mov esi, eax
mov edx, 0xa78795
mov esi, 0xa7c0f2ce
sub eax, 0xe6d4f347
mov ecx, 0
not eax
sub esi, 1
mov cl, byte [edi]
add esi, esi
mov esi, eax
mov byte [ebx], cl
or esi, esi
sub esi, eax
inc ebx
add esi, esi
inc esi
add edi, 2
and esi, eax
add eax, 1
sub eax, 0x5fdb9551
cmp edi, edx
jle 0xa78c69
mov eax, esi
sub eax, esi
add esi, esi
or esi, ebx
push 0x8dc6a0
sub esi, 0xdf0b01fa
and ebx, esi
ret