Function at 0x46cff0
Capabilities:
Encode data using xor

Disassembly:
fbstp tbyte [si]
loopne 0x45678d
inc ebp
salc
and dword [eax], 0xffffffb3
inc esi
sbb al, 0xb
push ss
lodsb al, byte [esi]
sub eax, 0x392f15f1
xor byte ss:[ebx + edx + 7], dh
das
cmp dword [esi], esi
xor byte [ebx + edx + 7], dh
mov edx, dword [eax - 0x17]
dec eax
mov esi, 0x93c01bd0
adc dh, byte [edx - 8]
xchg ebp, eax
call 0xd62e8fcc
loopne 0x45677d
invalid
pushfd
or al, byte [ecx + 0x25]
and dh, dh
xor al, 0xd4
pop edx
xchg esi, eax
insb byte es:[edi], dx
stosd dword es:[edi], eax
sub ah, byte [ecx]
adc byte [eax + 0x4b9f191a], 0xea
xchg edi, eax
test byte [edi + eax*4], ch
sub byte [ebp + 0x9e4b67c], dl
jno 0x45676b
insb byte es:[edi], dx
add byte [ebp + 0x479a4b7f], cl
jnp 0x456816
add byte [ecx + 0x2125ddf4], ah
clc
sbb dword [eax], ebp
xchg edi, eax
cld
and byte [ecx + esi*4 - 0x54], bh
test eax, 0x2c306c30
mov dword [esi + 0x7d], ebx
imul eax, dword [0x5303b854], 0x28
adc al, 0x34
mov dword [esi + 0x30], 0xf0172b60
jp 0x45688a
pushal
sub edx, dword [edi]
invalid
xor al, 0xc7
fmul dword [0x8fc18db0]
cmp dl, byte [ecx]
aas
pop esp
rol al, 0xe9
or byte [edi + 0x6ef00e77], dl
or dword [esi + 0x145040bd], eax
jne 0x456848
or ebx, dword [edx - 0x36]
js 0x456851
push cs
out 4, eax
adc al, 0xeb
or dword [edx + 0x4b], ebp
cmovs edi, dword [edi + esi*4]
test al, 0xdd
js 0x456856
in al, 0x41
sub byte [ebx], bh
xlatb
in al, 0xdb
jno 0x45687e
out 0x9f, eax
or al, 0x36
call 0x188bc8dc
push ss
inc esi
sbb byte [esi], ch
push ss
pop es
scasb al, byte es:[edi]
test eax, esp
enter 0x116, 0xffffffffffffffad
pop edi
nop
cmp byte [edx + edi*8 + 0x34b7bf02], al
cmp eax, 0x47a2d190
jne 0x45689f
jmp 0x45680e
dec eax
loope 0x456885
xchg edi, eax
stosb byte es:[edi], al
or bh, al
pop ecx
inc eax
in al, 0x2a
pop eax
inc edi
xchg esp, eax
xor dword [ebx], ebx
mov al, byte [edx]
clc
xor byte [edx + esi], al
mov bh, 0x28
ja 0x4568f0
xor eax, 0x72b18a36
movsb byte es:[edi], byte [esi]
popal
popal
pop edi
sbb al, byte [eax]
or al, 0xec
fist word [eax]
in al, dx
sbb dl, bl
mov eax, 0x436a25e5
or byte [ecx + esi*4], bl
mov al, byte [0x183efa46]
mov dword [eax], 0x4c24a8f
sal byte es:[edx + ecx + 0x5d98e008], 0xa4
out 0x32, al
sbb byte [eax], dl
dec edx
adc ah, byte [esi + 0x70]
das
insb byte es:[edi], dx
scasd eax, dword es:[edi]
and al, 0xe
ja 0x456920
jae 0x4568ea
test byte [edi - 0x16e1d7dc], bh
mov al, byte [0xd60b2c27]
push 0x32
inc dl
cmpsd dword [esi], dword es:[edi]
mov eax, dword [0xc722d678]
aaa
iretd
mov eax, 0x10c15c1e
pop ebp
ror dword [eax + 3], 0x71
adc al, 0xe9
add dword [esi], eax
or edx, edi
add dl, 0xbf
ror byte [edi + 0x40], cl
imul eax, dword [edx + 0x5c], 0xffffffe2
xor cl, byte [esi + 0xa]
xor dword [edx], esi
dec edx
enter 0x6b14, 0x65
pop esi
fsub dword [edi + 0xc]
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x45000]
mov dword [edi + 0x5870c], 0x7eb62465
push edi
or ebp, 0xffffffff
jmp 0x46d01a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x46d021
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x46d010
mov eax, 1
add ebx, ebx
jne 0x46d033
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x46d044
jne 0x46d063
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x46d063
dec eax
add ebx, ebx
jne 0x46d050
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x46d028
add ebx, ebx
jne 0x46d05f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x46d0b5
xor ecx, ecx
sub eax, 3
jb 0x46d07b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x46d0ea
sar eax, 1
mov ebp, eax
jmp 0x46d086
add ebx, ebx
jne 0x46d086
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x46d054
inc ecx
add ebx, ebx
jne 0x46d094
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x46d054
add ebx, ebx
jne 0x46d0a1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x46d096
jne 0x46d0b2
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x46d096
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x46d0d4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x46d0c6
jmp 0x46d016
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x46d0d4
add edi, ecx
jmp 0x46d016
pop esi
mov edi, esi
mov ecx, 0x2ba5
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x46d0f2
cmp byte [edi], 0x1b
jne 0x46d0f2
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 0x46d0f7
lea edi, [esi + 0x69000]
mov eax, dword [edi]
or eax, eax
je 0x46d166
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x6d9bc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x6da48]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x46d124
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x6da4c]
or eax, eax
je 0x46d160
mov dword [ebx], eax
add ebx, 4
jmp 0x46d141
call dword [esi + 0x6da5c]
mov ebp, dword [esi + 0x6da50]
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 0x46d19a
sub esp, 0xffffff80
jmp 0x4567c0