Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x854749df
sub edx, esi
add esi, edx
popal
add esi, 1
sub edx, 0x4a88da51
dec esi
mov edx, 0
mov ebx, edi
mov eax, 0x8efa02ce
sub eax, ecx
add eax, 0x1854bd14
mov esi, ebx
sub ecx, 0x7644dcfa
add eax, ecx
sub eax, 1
mov edi, esi
dec ecx
inc eax
dec ecx
inc edx
and eax, eax
sub eax, 0x6b50d52
mov eax, 0x4d64f61c
cmp edx, 0x100a49a
jne 0xa789c9
or eax, eax
add eax, eax
sub eax, ecx
sub esi, edx
not edx
inc edx
mov edi, 0xa78796
and ecx, esi
mov esi, ecx
sub ebx, 0x5d1777d7
mov edx, 0xa7898a
mov ecx, 0xffc0a04a
and ecx, ecx
mov eax, dword [edi]
inc ecx
or ecx, ebx
sub ecx, ebx
and eax, 0xff
or ebx, esi
or ecx, ebx
xor dword [edx], eax
not esi
dec ecx
inc edx
and ebx, esi
and ebx, ecx
or ecx, ebx
inc edi
not esi
add ebx, ebx
cmp edx, entry0
jl 0xa78a2d
sub ebx, 0xd203c289
dec ecx
sub ecx, ebx
add ebx, 1
add edx, 1
mov ecx, 0xcf17b6bd
mov esi, 0xa7898e
dec edi
sub edx, edi
mov esi, dword [esi]
sub ecx, ebx
sub edi, 0xd60d8bb5
add ebx, 0x7345af69
mov esi, dword [esi]
sub edi, 0xf16a085f
or ecx, ebx
sub esp, 4
mov dword [esp], esi
mov ebx, ecx
dec ecx
mov esi, 0xa7898a
dec edi
and ecx, edx
mov ecx, edi
mov esi, dword [esi]
inc edi
and edx, ecx
mov esi, dword [esi]
add edi, edx
sub edi, 0x2c453206
sub edi, ebx
sub esp, 4
mov dword [esp], 0xa78992
mov ebx, 0x68e6ee83
mov ebx, edi
call esi
mov ecx, edx
sub edi, edx
mov esi, dword [esp]
add esp, 4
and edi, ebx
dec edi
push 0xa7899f
sub edx, 0xe923dc94
or ebx, edi
push eax
add edx, edi
or ecx, ebx
call esi
sub edi, edx
and edx, ecx
push 0x40
sub ebx, edi
add edi, 0xb00f2702
sub esp, 4
mov dword [esp], 0x3000
mov edx, 0x23ff8f7f
inc ecx
push 0x20000c40
add ecx, edi
sub ebx, ecx
mov edx, ecx
push 0
sub edx, ebx
not edi
call eax
mov ecx, edi
sub ebx, 0x7fadcdf0
sub edi, 0x6691befd
add eax, 0x20000bba
mov edx, 0x9d52cc1f
add edx, edi
add edi, 0x55b47ebc
mov esi, 0x16bb3093
and ebx, ebx
mov ebx, edx
sub ecx, 0x317cc178
mov dword [eax], esi
add edi, 1
or edx, ebx
mov esi, dword [eax]
or edi, ebx
dec ecx
dec edx
cmp esi, 0x16bb3093
je 0xa78b75
mov ecx, 0
mov dword [ecx], ebx
dec ebx
or ecx, ecx
not edi
mov ebx, edx
sub edx, 1
not edx
sub edx, esi
and edx, edx
mov edi, section.UPX1
add edx, 1
add esi, esi
mov edx, 0x14bcd4ae
mov eax, 0xa78795
not esi
add esi, 0x29fb6d86
sub edx, esi
mov ecx, 0
mov esi, edx
inc edx
mov ebx, 0xa78796
mov edx, esi
inc edx
sub esi, edx
lea ebx, [ecx + ebx]
and edx, esi
not esi
sub esi, 1
mov ebx, dword [ebx]
and esi, edx
and esi, esi
and ebx, 0xff
and esi, esi
mov esi, 0xd8e51aae
not esi
inc ecx
sub edx, 1
sub edx, 0x1c2a1da9
cmp ecx, 0x1f4
jne 0xa78bf7
mov ecx, 0
and esi, esi
sub esi, edx
not esi
mov edx, esi
add esi, 0x46a0cbfd
xor dword [edi], ebx
add edx, esi
mov esi, 0xb578593d
add esi, 0xacc5082c
add edi, 2
add esi, esi
add esi, edx
cmp edi, eax
jl 0xa78bb1
mov esi, 0x282c74fa
not esi
add edx, esi
sub edx, esi
add edx, 0x104fbd21
mov eax, section.UPX1
sub edi, 0x3b3d80e9
and esi, esi
mov ebx, section.UPX1
and esi, esi
not edi
not esi
mov edx, 0xa78795
add edi, 1
dec edi
inc esi
mov ecx, 0
not esi
sub edi, 1
mov cl, byte [ebx]
or edi, esi
or edi, edi
mov byte [eax], cl
sub esi, edi
add edi, esi
mov edi, 0x2329e7ca
inc eax
inc edi
mov esi, edi
sub edi, 0xf030be32
add ebx, 2
add edi, esi
inc esi
cmp ebx, edx
jle 0xa78c69
inc esi
sub edi, esi
add esi, esi
mov esi, 0x57cf9455
sub esi, 0xdadc34c0
sub esp, 4
mov dword [esp], 0x8dc6a0
mov esi, edx
and esi, edx
ret