Function at 0x5154a0
Capabilities:
Encode data using xor

Disassembly:
dec eax
push 0xffffffffffffffe4
test eax, 0xacbe0215
sbb eax, 0x8b93fceb
fst qword [edi - 0x5678a905]
and al, 0x78
mov esi, 0x4ae6379a
and ah, byte [eax + 0x71]
nop
fbld tbyte [ebx + eax*4 - 0x1e]
add eax, 0x4dec00b0
inc edi
fstp dword [esi - 0x40dcd8dd]
mov edi, 0x690608b6
cmpsb byte [esi], byte es:[edi]
add al, 0x28
push ebp
mov ecx, 0x118520dd
mov cl, 0xbd
scasd eax, dword es:[edi]
stosb byte es:[edi], al
rcl dword [edx + esi*2], cl
inc eax
lahf
dec eax
xor byte [ebx + ebx*2], ch
inc esi
and al, byte [eax]
imul eax, dword [edx], 0x78
mov dl, 0xba
add dl, byte [ebx + 0x58]
jnp 0x4bec78
dec ebx
pop es
pushfd
inc eax
push ds
adc byte [eax + 0x32001384], cl
rol byte [ecx], 0xe4
enter 0x717a, 0x3f
in al, 0xc8
jp 0x4bed33
aas
jle 0x4bed1d
in al, dx
jne 0x4bec5a
or al, 0x58
adc ecx, dword [esi]
je 0x4bed4d
movsb byte es:[edi], byte [esi]
add byte [eax], 0x33
pushal
sbb dword [ebp - 0x7aa42493], ebp
lea edi, [esi + 0x24]
pop es
xor byte [edx], al
sub al, 0x8e
add al, 0xdb
out 0xea, al
mov bh, 0x38
add dh, byte [ecx*4 - 0x41aca7a2]
or dword [edx + eax + 0x50], edx
nop
mov byte [edx], al
fsubp st(0)
nop
xchg esi, eax
push es
adc al, 0xd0
add al, 0x41
mov al, 0xf9
mov byte [0x244b3de], al
add dword [eax], esp
push 0xa473e16a
mov dh, ah
inc edx
xchg ecx, eax
inc ebx
enter 0x51c, 0x6c
dec esi
sub byte [eax + ebx*8 + 0x6d], bh
stc
jle 0x4becbe
loopne 0x4bed64
cmp ah, byte [eax]
push esi
cmp al, 0x8d
push ebp
or al, 0x5b
or dword [eax + 0x3b2cefde], eax
ret 0x21a
add byte [esp + ecx*2], ch
daa
sub eax, 0x1d6c6561
xor al, 0x14
js 0x4bed27
fst dword fs:[esi + 0x1c1a4818]
push eax
sbb al, 7
sub dword [eax + 0x247d209f], esp
and byte [ebp + 0x24], bh
push ecx
invalid
cmp eax, 0x31db9db3
xor byte [esp + ebx*2 + 0x1d], 0x6a
adc byte [edi], dl
adc al, 0x44
mov byte [0x6efde22a], al
fld qword [esi]
and dword [ecx + 0x2e], ebp
dec ebx
push eax
nop
or byte [eax], 0x53
or bl, cl
enter 0xffffffffffffb232, 0x11
test byte [eax + ecx*4], cl
adc byte [edx + esi*4], bh
insb byte es:[edi], dx
wait
push 0x6840704e
push esi
je 0x4bedde
adc cl, dl
enter 0x7832, 0x48
jl 0x4beda4
xchg byte [ecx - 0x63], al
popfd
push es
mov edi, ds
add al, 0x24
mov al, 0x28
pop eax
sub byte [ecx - 0x37], bh
dec ecx
das
aad 3
dec eax
xchg ebx, eax
push ebx
push es
int1
xor byte [edi + 0x2a0019c], cl
pop edx
or esp, dword [eax]
test dword [edx - 0x59], edx
cmpsd dword [esi], dword es:[edi]
iretd
sub byte [ebx + 0x11affd0], 0x85
sub edx, dword [esi]
push esi
and al, 0xf9
scasb al, byte es:[edi]
or al, 0x88
inc edx
lcall 0x86d, 0x65e76e00
adc eax, 0x18437a64
pushfd
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x9f000]
push edi
or ebp, 0xffffffff
jmp 0x5154c2
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x5154c9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x5154b8
mov eax, 1
add ebx, ebx
jne 0x5154db
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x5154d0
jne 0x5154ec
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x5154d0
xor ecx, ecx
sub eax, 3
jb 0x515500
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x515572
mov ebp, eax
add ebx, ebx
jne 0x51550b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x515518
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x51553c
inc ecx
add ebx, ebx
jne 0x515528
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x51551d
jne 0x515539
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x51551d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x51555c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x51554d
jmp 0x5154be
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x51555c
add edi, ecx
jmp 0x5154be
pop esi
lea edi, [esi + 0x113000]
mov eax, dword [edi]
or eax, eax
je 0x5155bb
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x11b8fc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x11b9b0]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x515579
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x11b9b4]
or eax, eax
je 0x5155b5
mov dword [ebx], eax
add ebx, 4
jmp 0x515596
call dword [esi + 0x11b9b8]
popal
jmp 0x4bec77