Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbded237
mov edi, ebx
and edi, edi
sub edi, 0xa3cea31c
popal
and ebx, edi
sub ebx, edi
mov ebx, 0
mov esi, eax
or edi, edi
inc ecx
mov edx, esi
add edi, ecx
dec edi
and edi, edi
mov eax, edx
add ecx, 0x99329a2a
add edi, 0x2f13338
inc ebx
add ecx, 0x2d040be
inc edi
sub ecx, edi
cmp ebx, 0x100e5a6
jne 0xa789c6
mov edi, ecx
mov edi, 0xab0d1d2e
and edi, edi
mov ebx, 0x8e125563
mov edi, 0x7c354104
mov edi, 0xa78796
sub eax, 0x3ce186b1
mov ebx, eax
mov ecx, 0xa7898a
dec edx
and ebx, edx
mov esi, dword [edi]
sub eax, ebx
inc edx
dec edx
and esi, 0xff
sub eax, 1
inc edx
xor dword [ecx], esi
mov edx, 0x26e4ed4
sub ebx, eax
inc ecx
or eax, edx
dec ebx
add edi, 1
mov edx, ebx
sub ebx, edx
cmp ecx, entry0
jl 0xa78a1e
mov eax, ebx
not edx
mov edx, ebx
or edx, edx
add ebx, 0x9f33031a
add edx, eax
and edi, edx
not edi
mov ebx, 0xa7898e
add esi, esi
add esi, edx
mov esi, 0x45f19a28
mov ebx, dword [ebx]
or edi, edx
mov edx, 0xb1ea4319
or edi, edx
mov ebx, dword [ebx]
not edi
sub edx, 0xa2e0c9d5
push ebx
sub edx, ecx
or edi, edx
mov edx, ecx
mov ebx, 0xa7898a
not edi
add edi, 0x6fc53d9d
add edi, 0xacc00c07
mov ebx, dword [ebx]
add edx, 0x521aeb52
sub esi, 0xf9155fd9
mov ebx, dword [ebx]
add edi, 0xab96280f
and edx, ecx
push 0xa78992
mov ecx, edx
not ecx
dec ecx
call ebx
inc edi
add edi, 0x681c310b
sub edx, ecx
pop ebx
sub esi, ecx
dec edi
add edi, edi
push 0xa7899f
or edi, esi
or edi, edi
sub edx, 0x370e9c26
push eax
sub edx, 0xbe171cd6
or edi, ecx
call ebx
dec edx
add ecx, ecx
dec edx
push 0x40
add edi, 0xf35e241f
not edx
or esi, esi
sub esp, 4
mov dword [esp], 0x3000
inc edi
mov edi, 0xf5fcc2f0
push 0x20000d68
add esi, 1
sub edi, esi
push 0
add ecx, esi
mov ecx, 0x54104f66
call eax
or esi, ecx
dec ecx
add eax, 0x20000cbc
or esi, edx
add edi, esi
mov ebx, 0x890e9559
not edx
dec esi
mov dword [eax], ebx
or ecx, ecx
add ecx, 1
sub edx, 0xc70748e1
mov ebx, dword [eax]
dec edi
sub edi, 0xe51f7472
mov edi, edx
cmp ebx, 0x890e9559
je 0xa78b6f
mov edx, 0
mov al, byte [edx]
not edx
mov ecx, esi
or edx, edi
sub edi, 0xb30ecc81
sub ebx, 0x87232568
sub edi, ebx
mov eax, section.UPX1
mov ebx, 0x8f15b8fa
or edi, ebx
add edi, edi
mov ecx, 0xa78795
or ebx, ebx
dec ebx
sub ebx, 0x581c8d71
mov esi, 0
dec ebx
inc edi
mov edx, 0xa78796
inc edi
add edi, 0x2a527636
lea edx, [edx + esi]
add ebx, ebx
inc edi
mov edx, dword [edx]
add ebx, 0x1a5cd78d
or ebx, edi
and edx, 0xff
sub edi, 0x8fa6dc02
dec ebx
inc esi
or edi, edi
add edi, 1
cmp esi, 0x1f4
jne 0xa78be5
mov esi, 0
sub edi, 0x30bfd7d7
inc ebx
inc edi
not ebx
or ebx, edi
xor dword [eax], edx
add edi, 0x14fbb5fd
mov edi, ebx
add eax, 2
mov edi, 0x9dae07f4
or ebx, edi
mov ebx, edi
cmp eax, ecx
jl 0xa78ba6
sub ebx, edi
add ebx, 0x925ae32f
sub ebx, edi
inc ebx
sub ebx, 0x7888f6f9
mov ecx, section.UPX1
dec esi
mov edi, 0x3c9397d1
mov edx, section.UPX1
not edi
mov esi, edi
mov ebx, 0xa78795
sub esi, edi
sub edi, 0x862fae84
sub esi, edi
mov eax, 0
mov edi, esi
inc esi
sub esi, 0xf09998f
mov al, byte [edx]
inc edi
and esi, edi
mov byte [ecx], al
add esi, edi
sub edi, 1
add ecx, 1
sub esi, edi
add esi, 0x8ea60be7
add edx, 2
sub edi, 0xb15c7202
dec esi
sub esi, edi
cmp edx, ebx
jle 0xa78c54
inc esi
sub edi, esi
sub edi, 0xe9ba9b5
mov edi, 0xba6f6419
inc edi
sub esp, 4
mov dword [esp], 0x8dc6a0
inc ebx
add ebx, ebx
not ebx
ret