Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb8aa8e41
mov ecx, 0xdb481877
add ecx, 0x6dee189a
popal
add edi, ecx
sub ecx, edi
mov edi, 0
mov edx, esi
dec ecx
dec eax
mov ebx, edx
mov eax, 0x8196509
add ecx, ecx
mov esi, ebx
inc ecx
mov eax, ecx
inc edi
sub eax, 1
mov eax, ecx
add ecx, ecx
cmp edi, 0x10016d8
jne 0xa789c7
sub eax, 0x5db1c2c8
and eax, eax
not eax
sub edi, ecx
add edi, edi
mov ebx, 0xa78796
mov ecx, edi
sub ecx, 0x59f12e7e
not edx
mov esi, 0xa7898a
not edi
mov ecx, 0x92562620
sub edx, 0xde8ba729
mov eax, dword [ebx]
mov edx, edi
dec edx
inc edi
and eax, 0xff
add ecx, 0x37a4f29
dec edx
xor dword [esi], eax
add edi, edi
and ecx, edx
mov ecx, 0x924ed75d
inc esi
add edi, 1
sub edx, edi
not edx
inc ebx
and ecx, edi
mov edi, edx
mov edx, 0x8ffbc159
cmp esi, entry0
jl 0xa78a1f
sub ecx, 0xe34971a9
mov edi, ecx
sub edx, edi
mov ecx, edx
sub edi, ecx
sub edi, ecx
sub ebx, edx
add edx, ebx
mov esi, 0xa7898e
add ebx, 0xc2d4cc46
not ecx
dec edx
mov esi, dword [esi]
and edx, ebx
sub ebx, ecx
add ecx, 0x3824dc47
mov esi, dword [esi]
inc edx
add edx, 0x47626ad8
push esi
mov ecx, ebx
add edx, edx
not ebx
mov esi, 0xa7898a
sub edi, ecx
add edi, ebx
add edx, edx
mov esi, dword [esi]
and edi, edi
and ecx, edi
mov esi, dword [esi]
add edx, 0xd9fe7b43
inc edx
sub ecx, 0x83876409
push 0xa78992
and ecx, edi
dec ecx
mov edx, 0xd9f2f5fc
call esi
mov edx, 0xb7a704cf
add edi, 0x7bf9451
add edi, ebx
pop esi
mov edx, ebx
sub edi, 0xb266ce
sub esp, 4
mov dword [esp], 0xa7899f
add edi, 0xc1ce5194
sub ebx, 0xff2486d0
push eax
mov edx, ebx
dec ecx
sub edx, ecx
call esi
mov ebx, edi
not ecx
push 0x40
dec ecx
dec ebx
push 0x3000
mov ecx, 0xcaa91239
sub ecx, 0x5d3ed847
and ecx, ecx
sub esp, 4
mov dword [esp], 0x2000077c
and ecx, edi
mov ebx, 0xca4d0ea4
sub ebx, 0x35e7220e
sub esp, 4
mov dword [esp], 0
or ecx, edi
and edx, edi
call eax
sub ebx, 0x97c4a0d3
or ecx, edi
add eax, 0x200006f4
dec ecx
add ecx, edx
mov esi, 0x58c4d1f
add edi, edx
inc ecx
mov dword [eax], esi
and ecx, edi
or ecx, ecx
mov esi, dword [eax]
sub edi, 0x2cad5d58
mov edx, ebx
cmp esi, 0x58c4d1f
je 0xa78b7b
mov edx, 0
mov dword [edx], ebx
not edx
add edx, edx
add ebx, 0xe848b58d
inc ecx
mov edx, ecx
mov ecx, 0xcaa922cf
or edi, edi
mov eax, section.UPX1
and ecx, ecx
inc ecx
mov esi, 0xa78795
sub ecx, 0xce609cb2
add ecx, 0x3b891e15
mov edx, 0
add ecx, 0x37dca3dd
inc ecx
mov ebx, 0xa78796
inc ecx
not ecx
lea ebx, [ebx + edx]
not edi
mov ecx, edi
mov ebx, dword [ebx]
mov ecx, 0xf381f874
add edi, edi
mov edi, 0x53c6bb6f
and ebx, 0xff
add ecx, 0xca9cb1f6
add ecx, ecx
inc edx
add edi, 0x44fc1cc6
sub edi, 0x8d73ea0e
mov ecx, 0x320a7a86
cmp edx, 0x1f4
jne 0xa78bfe
mov edx, 0
sub ecx, 0xcb4cd834
add ecx, edi
sub ecx, edi
sub ecx, 0xd9be7bbf
add ecx, edi
xor dword [eax], ebx
or ecx, edi
add ecx, 0xc0b44e54
add ecx, ecx
add eax, 2
mov edi, ecx
sub edi, 1
inc ecx
cmp eax, esi
jl 0xa78bb4
sub edi, 0xec512f19
not edi
sub edi, ecx
inc ecx
mov ebx, section.UPX1
sub edi, 0x305333c0
sub edi, 0x1ed0810c
add ecx, ecx
mov edx, section.UPX1
and ecx, ecx
inc ecx
mov esi, 0xa78795
and ecx, edi
dec edi
mov eax, 0
inc ecx
mov edi, 0x74f26f54
add ecx, ecx
mov al, byte [edx]
add ecx, 0x6c76745c
dec edi
mov byte [ebx], al
inc ecx
add edi, 0x5fbccbbc
inc edi
inc ebx
dec edi
or ecx, edi
add edx, 2
and ecx, ecx
add edi, ecx
and edi, ecx
cmp edx, esi
jle 0xa78c6e
sub edi, ecx
mov ecx, 0xde6faa9
sub ecx, edi
add ecx, 0x1f7bf64a
or edi, edi
or edi, ecx
push 0x8dc6a0
mov ecx, 0x9d183d4e
add edi, ecx
add edi, 0xb0387df5
ret