Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xdef07af7
and esi, ebx
sub ebx, 1
popal
not esi
and ebx, esi
mov ecx, 0
mov edi, eax
sub edx, 1
add edx, ebx
mov esi, edi
mov ebx, edx
add ebx, 0xe5fe505e
mov eax, esi
mov ebx, 0x3da813c1
and edx, ebx
inc ecx
not ebx
mov edx, 0x78725b94
cmp ecx, 0x1008574
jne 0xa789c4
mov ebx, 0xdd184fe6
inc ebx
not ebx
add esi, 0x88dce130
mov eax, 0xa78796
not ecx
mov edi, 0x302f76cb
add ecx, 0xb634bdd5
mov edx, 0xa7898a
and ebx, ecx
and ebx, ecx
mov esi, dword [eax]
not edi
add ebx, edi
and esi, 0xff
sub edi, ebx
or edi, ecx
or edi, ecx
xor dword [edx], esi
add edi, edi
not edi
inc edx
mov edi, 0xd75f965c
sub ebx, 0x5e7652d7
sub ebx, 0xa6d0ec38
inc eax
mov ebx, edi
or ebx, ecx
cmp edx, entry0
jl 0xa78a1e
add edi, edi
sub edi, ecx
sub ecx, edi
or ecx, edi
add ecx, edi
not edx
and edx, esi
add edx, ebx
mov ecx, 0xa7898e
and ebx, ebx
mov esi, edi
mov ecx, dword [ecx]
add edi, ebx
add edx, 0x7d515cab
mov ebx, 0xc0cbdba3
mov ecx, dword [ecx]
and esi, edx
sub esi, 0xe3c1fb34
sub esp, 4
mov dword [esp], ecx
add edx, ebx
add ebx, 1
mov ecx, 0xa7898a
sub esi, ebx
add edx, edi
mov ecx, dword [ecx]
dec edi
mov esi, ebx
add esi, esi
mov ecx, dword [ecx]
sub edi, 0x446d6ef6
sub ebx, 0x4da39733
sub esp, 4
mov dword [esp], 0xa78992
add edx, ebx
sub esi, 1
inc ebx
call ecx
add edx, 0xe55cb6c6
mov ebx, edi
not edx
pop ecx
and edx, edi
dec edx
mov edx, 0x92bde291
sub esp, 4
mov dword [esp], 0xa7899f
mov edi, 0x82333d75
sub esi, 0x3037cef3
sub esp, 4
mov dword [esp], eax
mov ebx, 0x5f6eac0c
not ebx
and esi, edx
call ecx
sub esi, 0x2d93167e
not esi
push 0x40
add edi, 0x3e99e6f0
and ebx, edx
sub esp, 4
mov dword [esp], 0x3000
not esi
add edx, 1
push 0x2000077f
mov edi, esi
sub edx, 0x1cefd168
sub esp, 4
mov dword [esp], 0
sub edi, edx
dec edi
call eax
dec edi
add edx, 0xb220f860
add eax, 0x200006da
sub edx, ebx
mov edi, ebx
mov ecx, 0xa1b9eae6
not ebx
add edx, esi
mov dword [eax], ecx
sub edi, edx
mov edx, 0x136eeb4a
sub edi, edx
mov ecx, dword [eax]
mov edx, esi
add ebx, 1
cmp ecx, 0xa1b9eae6
je 0xa78b86
mov eax, 0
mov dword [eax], edx
add edi, ebx
add esi, esi
add esi, edx
add edx, 0x25e3e7b7
sub ebx, edx
mov esi, ebx
not esi
add ebx, 0x417672af
mov eax, section.UPX1
and esi, ebx
not ebx
and esi, esi
mov edi, 0xa78795
mov esi, ebx
sub esi, 0xafd2f4a
add esi, 1
mov edx, 0
not ebx
or ebx, ebx
add esi, 0xb7b2f393
mov ecx, 0xa78796
sub esi, ebx
add ebx, 1
lea ecx, [edx + ecx]
inc esi
inc esi
sub esi, 0xb3b424aa
mov ecx, dword [ecx]
inc ebx
add ebx, 0x65b7c73e
and ecx, 0xff
mov esi, 0x536913cb
add ebx, esi
not esi
inc edx
mov esi, 0x6928bd8e
dec esi
cmp edx, 0x1f4
jne 0xa78c0f
mov edx, 0
sub esi, 0xedc3de07
or ebx, esi
or ebx, esi
sub esi, ebx
xor dword [eax], ecx
add esi, 1
add esi, 0x3957c548
add eax, 2
mov esi, ebx
mov esi, 0x82a83e37
cmp eax, edi
jl 0xa78bcb
sub esi, ebx
sub esi, ebx
sub ebx, esi
add ebx, ebx
sub ebx, 0x9f1db096
mov edx, section.UPX1
mov eax, 0xd3bcf87
dec edi
or edi, eax
mov esi, section.UPX1
sub edi, 1
and eax, eax
and eax, eax
mov ecx, 0xa78795
mov eax, edi
not edi
mov eax, 0xea42840d
mov ebx, 0
add edi, 0x40a99e18
or edi, edi
mov bl, byte [esi]
add edi, edi
add edi, 0x672cc58
add eax, 0x1f2baf2
mov byte [edx], bl
inc eax
sub eax, edi
add edx, 1
mov eax, 0xecd899ef
sub edi, 0x2b25362
add esi, 2
mov eax, edi
add edi, edi
cmp esi, ecx
jle 0xa78c83
sub edi, 1
add edi, 0x4a1e57cb
add esi, ebx
and esi, ebx
sub esi, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
or esi, esi
add esi, ebx
ret