Function at 0x8514d0
Capabilities:
Encode data using xor

Disassembly:
dec esp
dec esi
dec esi
and byte [edi], al
sti
dec esp
nop
dec ebx
pushfd
pop eax
xor al, ch
lock adc ah, byte [ecx - 0x5637401c]
inc ecx
sub dword [edi - 0x41], ebx
add cl, byte [ebp + 0x24]
and bh, byte [eax + 0x10]
cmpsb byte [esi], byte es:[edi]
dec ebp
pop edi
cmp byte [edx + ebx*2], cl
adc byte [edi], bh
mov edi, 0xa101ac3f
nop
and edx, dword [ebp - 0x53]
sbb ah, byte [edx + ebx]
push ecx
xchg dword [edx - 0x41], ebx
in al, 0xd1
mov al, byte [0x3abf5cd1]
and byte [esi - 0x6b], cl
sbb al, 0x28
mov eax, 0xed4ebf4e
and al, 0xf
dec eax
aas
or al, 0x3f
sub byte [edi], dl
add byte [eax], bl
je 0x75c049
mov edi, 0x428c4f9f
inc edx
pop esi
add dword [esi + 0x41d9024f], esp
cmpsb byte [esi], byte es:[edi]
dec edi
add bl, cl
inc ecx
pop es
invalid
pop ds
push eax
pushfd
push es
sbb eax, 0x26bf9c30
push eax
leave
dec ecx
pop esi
test dword [eax + 0x722ba050], ebp
and ah, 0x55
scasd eax, dword es:[edi]
push eax
aaa
push ecx
enter 0x4021, 0x4e
js 0x75c0f9
push ecx
add ah, ah
push ecx
add dword [ebx + 0x6c], edi
insb byte es:[edi], dx
jb 0x75c05e
push es
pop ecx
push eax
mov edi, 0x8311cc7b
sub al, 0x45
js 0x75c0a1
int3
jb 0x75c10c
pop ecx
jns 0x75c0d3
push ss
inc esp
dec esp
inc esp
and byte [ecx], cl
pop eax
inc eax
inc esp
nop
invalid
je 0x75c154
add dh, byte [edi + 0x14]
dec edx
pop ebp
xchg esi, eax
or byte [ecx], 0x8b
clc
ja 0x75c0db
sub byte [ecx], cl
dec eax
outsd dx, dword [esi]
push edx
inc ebp
or bl, byte [eax]
xchg dword [eax], edi
rcr byte [eax + 0xe], cl
pop ds
inc ax
sub edi, dword [eax + ebp]
pop ds
cwde
sti
jl 0x75c0a4
or byte [edx + 0x50], ch
xlatb
push eax
or eax, 0xd734100a
xor al, 0xd7
xor dword [esi + 0x97e15a0], esp
js 0x75c1ab
push eax
pop ds
xor al, 0x30
jge 0x75c128
add eax, 0xdd76d41
jle 0x75c178
pop ecx
cdq
add al, byte [eax + 0x3f]
xchg edi, eax
pop es
adc eax, 0xe81fbc4f
xor dword [edi - 0x7b], edi
cmp al, 0x22
nop
add al, 0x7f
dec esp
mov esi, 0x8f5486aa
or eax, 0xc0801880
test al, 0x42
daa
jns 0x75c16c
invalid
test dword [ecx], eax
leave
dec ebp
add byte [eax + 0x51], dl
lds esi, [eax + 0x7a5d4700]
inc eax
jp 0x75c1ba
or eax, 0x5c64f455
das
and byte [edi], cl
pop ecx
jns 0x75c1ee
xor al, 0x80
in al, 0x4c
test byte [ecx + 0x6be4081c], al
pop esp
adc ebx, dword [ebp - 0x5b]
ret
pop edi
rol byte [edx - 0x7ac0eea0], cl
sbb al, 0xc1
loope 0x75c1e5
dec edi
in al, dx
push ebp
lds ecx, [ecx + 0x2f0a5c46]
mov dword [esi + 0x5c], eax
or ch, byte [edi]
sub ch, byte [esp]
mov byte [0x502d2f2f], al
pop esp
cmp ch, byte [ecx]
aas
das
add dword [ebx + 0x5ed0392a], ebx
xlatb
mov byte [esi - 0x70ff32fb], al
mov al, 0xc0
mov ch, 0xd3
movsd dword es:[edi], dword [esi]
sub al, 0x37
dec edi
dec eax
pop ss
in al, dx
xchg ebp, eax
add ah, byte [edx + 0x58]
inc edi
dec byte [eax + edx]
pop eax
outsd dx, dword [esi]
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x31d000]
mov dword [edi + 0x35cc20], 0xdd464070
push edi
or ebp, 0xffffffff
jmp 0x8514fa
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x851501
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x8514f0
mov eax, 1
add ebx, ebx
jne 0x851513
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x851524
jne 0x851543
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x851543
dec eax
add ebx, ebx
jne 0x851530
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x851508
add ebx, ebx
jne 0x85153f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x851595
xor ecx, ecx
sub eax, 3
jb 0x85155b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x8515ca
sar eax, 1
mov ebp, eax
jmp 0x851566
add ebx, ebx
jne 0x851566
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x851534
inc ecx
add ebx, ebx
jne 0x851574
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x851534
add ebx, ebx
jne 0x851581
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x851576
jne 0x851592
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x851576
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x8515b4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x8515a6
jmp 0x8514f6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x8515b4
add edi, ecx
jmp 0x8514f6
pop esi
mov edi, esi
mov ecx, 0x10b99
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x8515d2
cmp byte [edi], 0x21
jne 0x8515d2
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 0x8515d7
lea edi, [esi + 0x44d000]
mov eax, dword [edi]
or eax, eax
je 0x851646
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x46507c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x465194]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x851604
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x465198]
or eax, eax
je 0x851640
mov dword [ebx], eax
add ebx, 4
jmp 0x851621
call dword [esi + 0x4651a8]
mov ebp, dword [esi + 0x46519c]
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 0x85167a
sub esp, 0xffffff80
jmp 0x75c0ac