Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x36367109
add ebx, ebx
inc edx
inc ebx
popal
sub edx, 1
or edx, ebx
and edx, edx
mov eax, 0
mov ebx, edi
not edx
sub edx, ecx
mov esi, ebx
sub edx, 0x50e2e728
sub ecx, 0x108983a7
mov edi, esi
and edx, ecx
dec edx
add eax, 1
sub edx, ecx
sub ecx, 0xea46e55f
sub edx, ecx
cmp eax, 0x1002f54
jne 0xa789c6
inc edx
and edx, edx
and ebx, edx
add edx, ebx
dec ebx
mov esi, 0xa78796
sub ecx, ebx
sub edi, ecx
mov eax, 0xa7898a
not edi
dec ecx
mov edx, dword [esi]
add ecx, 1
mov ebx, edi
mov edi, ebx
and edx, 0xff
not ecx
add ebx, edi
and ecx, ebx
xor dword [eax], edx
and edi, edi
inc edi
inc eax
or ecx, ebx
mov ebx, ecx
not ecx
inc esi
add edi, ecx
sub edi, 0x73fabea4
sub edi, ecx
cmp eax, entry0
jl 0xa78a14
sub ecx, 0x369507e2
mov ecx, 0xee198e2e
sub ebx, 1
mov ebx, 0xc26e7d02
or edi, edi
sub edi, edx
add edi, edx
mov esi, 0xa7898e
add ebx, 1
add ecx, edi
mov esi, dword [esi]
sub ecx, edx
and ecx, ebx
mov esi, dword [esi]
sub edi, 0xefba5da2
add ecx, 0x14a0b0b1
not edx
push esi
and edx, ebx
add ebx, edi
mov esi, 0xa7898a
or edx, edi
mov ecx, ebx
mov esi, dword [esi]
inc edi
or edx, edi
add ebx, 0x23f0fa6c
mov esi, dword [esi]
add edx, 0x1c077da8
add edi, ebx
and ebx, ebx
push 0xa78992
add edx, ebx
sub edx, 0x9504ffcb
call esi
sub edx, 0xd8a2f1b4
sub ebx, edi
mov esi, dword [esp]
add esp, 4
sub ebx, edx
and ebx, edi
sub esp, 4
mov dword [esp], 0xa7899f
sub ecx, 1
mov edx, 0x34a374ed
push eax
mov ecx, 0x57daef5
dec edi
call esi
mov edx, edi
and edx, edx
push 0x40
and ebx, ecx
and edi, edi
or edx, ecx
push 0x3000
mov ebx, ecx
inc ebx
push 0x2000058c
add ebx, 0x813bd4f5
sub edi, 0x962e8d37
add edi, 0x34e62e88
push 0
sub ecx, ebx
sub ebx, edx
call eax
mov ebx, 0xd59feb94
mov edi, 0xfbd8dd53
mov ecx, 0x637f8647
add eax, 0x200004e5
inc edi
not ebx
mov esi, 0xb5cae2a
or ecx, edx
and edx, ecx
mov dword [eax], esi
and edi, edi
add ecx, edi
mov esi, dword [eax]
not edx
mov edx, 0xc60770a2
inc ebx
cmp esi, 0xb5cae2a
je 0xa78b6b
mov ecx, 0
mov dl, byte [ecx]
mov edi, edx
sub ebx, 0xfc387d9b
add edx, ecx
sub edi, ebx
not edi
mov ebx, 0xa6698020
add ebx, ebx
add ebx, ebx
add ebx, edx
mov edi, section.UPX1
mov edx, ebx
sub ebx, 0x92da8ce0
mov eax, 0xa78795
and ebx, edx
sub edx, 0x6c5a607d
sub edx, ebx
mov ecx, 0
mov edx, 0x36b305cf
inc ebx
or ebx, ebx
mov esi, 0xa78796
mov edx, 0xa5bd788d
mov ebx, edx
sub ebx, edx
lea esi, [esi + ecx]
and edx, edx
sub ebx, 0xe0ba95cb
add edx, edx
mov esi, dword [esi]
inc ebx
sub edx, 0xf3235c0c
and esi, 0xff
inc ebx
or edx, edx
sub ebx, 0x94ad8be3
inc ecx
sub ebx, edx
add edx, 0x622471f7
mov edx, 0x5f3fcc43
cmp ecx, 0x1f4
jne 0xa78bfb
mov ecx, 0
not ebx
mov ebx, 0x11a2bae
inc ebx
sub ebx, 0xd6b80642
sub edx, 0x36b795f3
xor dword [edi], esi
and ebx, edx
mov ebx, edx
sub edx, ebx
add edi, 2
and edx, ebx
add ebx, 0xe6bba8ed
add ebx, edx
cmp edi, eax
jl 0xa78bad
sub ebx, 0x2b4ace68
mov ebx, edx
sub edx, 0x3dbad315
not ebx
or ebx, ebx
mov edx, section.UPX1
and esi, esi
sub ecx, esi
sub ecx, esi
mov eax, section.UPX1
mov ecx, 0xb6916acd
and ecx, esi
mov edi, 0xa78795
and esi, ecx
sub esi, 0x682af808
or esi, ecx
mov ebx, 0
mov ecx, 0x621d46a2
sub ecx, 0xa9000048
mov bl, byte [eax]
not esi
sub esi, 0x6683cde5
mov byte [edx], bl
sub esi, ecx
sub ecx, esi
inc edx
inc ecx
mov esi, ecx
add eax, 2
add esi, 0xe8f12bfa
sub ecx, esi
not esi
cmp eax, edi
jle 0xa78c77
and esi, esi
dec ecx
or ecx, esi
sub edx, ebx
add edx, edx
push 0x8dc6a0
mov edx, ebx
and ebx, edx
sub ebx, 0x4e7b49da
ret