Function at 0x56d420
Capabilities:
Encode data using xor

Disassembly:
inc esp
je 0x50feac
and esp, dword [ecx - 0x60f3af06]
cli
push eax
or al, 0x9f
and dword [ecx + 2], 0xffffff86
push ecx
salc
dec edi
adc eax, 0xaf1b715b
lahf
dec edx
popal
aad 0xf0
add al, byte [edx - 8]
lds esi, [edi + 0x11916060]
movsd dword es:[edi], dword [esi]
or esp, dword [0xc6161b55]
jae 0x50feb1
xor al, 0x59
and byte [ebx], ah
jne 0x50fe62
inc eax
cmp esi, eax
jle 0x50fea1
xor dword [esi + 0x18], 0xffffffdb
pop esi
daa
pop es
cmpsd dword [esi], dword es:[edi]
adc bh, byte [eax]
adc dl, al
je 0x50ff05
arpl word [edx], dx
sbb al, 0xb
adc bl, byte [ebx + ecx]
push esp
mov ah, cl
int 0x9e
adc byte [esi - 0x18172ae9], dh
clc
pop ss
aad 0xe8
out 0xf8, eax
pop edx
call 0x128aa68a
mov ecx, dword [ebx + 8]
add al, 0x56
add al, 0x1a
test dword [ecx + 0x18820d72], ecx
das
invalid
add byte [ecx], bl
pushal
or dword [ecx + 0x1489d1b4], esi
rcr byte [ecx + 0x145b003f], 1
call 0xc9d6562b
add byte [ebx - 0x1c], al
sbb dword [edi + 0x58], edx
loopne 0x50ff31
mov dr3, edi
sub eax, 0x4b82794
pop eax
mov byte [ecx], al
jg 0x50ff4b
fiadd dword [ebx + esi]
adc dword [edi + eax*8 + 0x14], edx
and byte [ebx + 0x7ee23b61], 0x81
and byte [esi + 0x2d391825], ch
xlatb
jg 0x50ffc2
xor edx, dword [ecx]
push esp
invalid
shl cl, 1
add eax, 0x428c603
inc ecx
sub byte [ecx + eax*2], al
xor al, 0x2b
retf 0x82b
rol byte [eax + 7], 0x59
mov eax, dword [0x98c5558]
pop es
add eax, eax
mov ah, 0x62
invalid
pushal
mov esi, section.UPX1
lea edi, [esi - 0x101000]
mov dword [edi + 0x10f9f4], 0x46881af8
push edi
or ebp, 0xffffffff
jmp 0x56d44a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x56d451
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x56d440
mov eax, 1
add ebx, ebx
jne 0x56d463
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x56d474
jne 0x56d493
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x56d493
dec eax
add ebx, ebx
jne 0x56d480
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x56d458
add ebx, ebx
jne 0x56d48f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x56d4e5
xor ecx, ecx
sub eax, 3
jb 0x56d4ab
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x56d51a
sar eax, 1
mov ebp, eax
jmp 0x56d4b6
add ebx, ebx
jne 0x56d4b6
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x56d484
inc ecx
add ebx, ebx
jne 0x56d4c4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x56d484
add ebx, ebx
jne 0x56d4d1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x56d4c6
jne 0x56d4e2
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x56d4c6
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x56d504
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x56d4f6
jmp 0x56d446
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x56d504
add edi, ecx
jmp 0x56d446
pop esi
mov edi, esi
mov ecx, 0x5a98
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x56d522
cmp byte [edi], 0x32
jne 0x56d522
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 0x56d527
lea edi, [esi + 0x169000]
mov eax, dword [edi]
or eax, eax
je 0x56d596
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x16df14]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x16e02c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x56d554
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x16e030]
or eax, eax
je 0x56d590
mov dword [ebx], eax
add ebx, 4
jmp 0x56d571
call dword [esi + 0x16e040]
mov ebp, dword [esi + 0x16e034]
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 0x56d5ca
sub esp, 0xffffff80
jmp 0x50fe5c