Function at 0x7818c0
Capabilities:
Encode data using xor

Disassembly:
cmpsd dword [esi], dword es:[edi]
mov word [edi + 0x160579a7], es
dec edi
cmpsd dword [esi], dword es:[edi]
mov ah, 0x98
mov esp, 0x9f2014a0
sbb al, 0x6c
xchg edi, eax
push edx
and byte [edi + 0x52976c1c], bl
loopne 0x688386
ja 0x6883b4
hlt
inc esi
inc dword [ebx]
pop ecx
jae 0x6883f6
inc ecx
popal
jo 0x6883b9
cmp eax, 0xbff1dec2
xor al, 0x2f
pushfd
jae 0x6883af
push edx
rcl byte [ecx]
sahf
cmpsb byte [esi], byte es:[edi]
sub byte [edi + 0x6bda823d], ch
invalid
int1
invalid
xlatb
fadd qword cs:[esi]
pop eax
sahf
in eax, dx
pop ebp
jl 0x6883c0
fisttp qword [esi - 0x22]
pop esi
fild qword [esi]
xor al, 0xe0
rcr cl, cl
jle 0x6883fb
rol dword [esi], cl
dec esp
jo 0x6883e3
pop edi
pop es
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x27c000]
mov dword [edi + 0x2a6710], 0x880c4250
push edi
or ebp, 0xffffffff
jmp 0x7818ea
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x7818f1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x7818e0
mov eax, 1
add ebx, ebx
jne 0x781903
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x781914
jne 0x781933
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x781933
dec eax
add ebx, ebx
jne 0x781920
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x7818f8
add ebx, ebx
jne 0x78192f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x781985
xor ecx, ecx
sub eax, 3
jb 0x78194b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x7819ba
sar eax, 1
mov ebp, eax
jmp 0x781956
add ebx, ebx
jne 0x781956
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x781924
inc ecx
add ebx, ebx
jne 0x781964
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x781924
add ebx, ebx
jne 0x781971
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x781966
jne 0x781982
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x781966
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x7819a4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x781996
jmp 0x7818e6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x7819a4
add edi, ecx
jmp 0x7818e6
pop esi
mov edi, esi
mov ecx, 0x11b4c
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x7819c2
cmp byte [edi], 0x6e
jne 0x7819c2
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x7819c7
lea edi, [esi + 0x37d000]
mov eax, dword [edi]
or eax, eax
je 0x781a36
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x38acb4]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x38adf4]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x7819f4
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x38adf8]
or eax, eax
je 0x781a30
mov dword [ebx], eax
add ebx, 4
jmp 0x781a11
call dword [esi + 0x38ae00]
mov ebp, dword [esi + 0x38adfc]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x21f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x781a6a
sub esp, 0xffffff80
jmp 0x688378