Function at 0x487493
Capabilities:
Encode data using xor

Disassembly:
add byte [esi], al
or al, byte [esi]
outsd dx, dword [esi]
sub al, 0
add byte [edx], cl
sub al, 0x2c
sub byte [0xb0a0000], ch
pop ds
or dh, byte [edx - 0x3e]
sbb dword [eax], eax
jo 0x4874c3
lea eax, [ecx]
add byte [eax], al
add dword [ebx], edx
add al, 0x11
add al, 0x16
pop es
mov word [eax + eax], es
add dword [edx + 0xd280411], esp
add byte [eax], al
push es
jae 0x4874f7
add dword [eax], eax
push es
jp 0x4874cf
sub byte [edi], ch
add byte [eax], al
or ch, byte [ecx + ecx]
add al, byte [esi]
jge 0x487529
add al, byte [eax]
add al, 0x2b
pop eax
push es
adc eax, dword [0x20160406]
aas
add byte [edi], cl
add byte [esi + 0x39], bh
add byte [eax], al
or al, byte [edx]
jl 0x487541
add al, byte [eax]
add al, 0x12
add ch, byte [eax]
push edi
add byte [eax], al
push es
or eax, 0x6a166a09
pop ds
or dh, byte [edx - 0x3e]
sbb dword [eax], eax
jo 0x48751e
add byte [eax + 0x17], dh
lea eax, [ecx]
add byte [eax], al
add dword [ebx], edx
push es
adc dword [esi], eax
push ss
or dword [esp + eax*2 - 0x5dff0000], ecx
adc dword [esi], eax
sub byte [0x73060000], cl
xor dword [ecx], eax
add byte [esi], al
push es
jae 0x487552
add dword [eax], eax
push es
jp 0x487504
or al, 0x11
add eax, 0x511072c
outsd dx, dword [esi]
inc esi
add byte [eax], al
sub al, 7
adc dword [0x466f], eax
or bl, ah
add al, byte [ebx + esi*2]
ret
jge 0x487598
add al, byte [eax]
add al, 2
jl 0x48759e
add al, byte [eax]
add al, 0x28
lds eax, [eax]
add byte [esi], al
sub al, byte [eax]
add byte [ecx], al
adc byte [eax], al
add byte [edx], al
add byte [edx], bl
dec ecx
mov dword [0xc00], eax
add byte [eax], al
mov byte [0x1472802], al
add byte [eax], al
add dword [eax], edx
add byte [eax], al
add al, byte [eax]
pop edx
add byte [ecx - 0x5d], cl
add byte [eax + eax], cl
add byte [eax], al
add byte [edx + 0x1472802], ah
add byte [esi], al
add al, byte [ebx]
jge 0x4875c2
add al, byte [eax]
add al, 2
add al, 0x73
ret
add byte [eax], al
or ch, byte [edx]
adc esi, dword [eax]
pop es
add byte [eax], bl
add byte [eax], al
cmp al, byte [eax]
add byte [ecx], dl
add bh, byte [ebx + 0x53]
add al, byte [eax]
add al, 3
push ss
and byte [edi], bh
add byte [edi], cl
add byte [esi + 0x39], bh
add byte [eax], al
or dl, byte [edx]
add byte [edx], dl
add dword [eax], ebp
push edi
add byte [eax], al
push es
or al, 8
push 0x16
push 0x2e
and ebx, dword [edi]
or dh, byte [edx - 0x3e]
sbb dword [eax], eax
jo 0x4875e9
lea eax, [ecx]
add byte [eax], al
add dword [0x8c081609], ecx
inc esp
add byte [eax], al
add dword [edx + 0xd2809], esp
add byte [esi], al
jae 0x48761a
invalid
add dword [eax], eax
push es
add byte [esi], al
jp 0x4875f4
add bh, byte [ebx + 0x55]
add al, byte [eax]
add al, 3
sub byte [edi], ah
add ebp, dword [eax]
daa
add byte [eax], al
or dh, byte [ebx + 0x54]
add dword [eax], eax
push es
sub dl, byte [ebx]
xor byte [0xa900], al
add byte [ebx], bh
add byte [eax], al
adc dword [edx], eax
jnp 0x487662
add al, byte [eax]
add al, 0x2c
or eax, 0x2537b02
add byte [edi + ebp*2], al
outsd dx, dword [esi]
sub al, 0
add byte [edx], cl
sub al, 2
adc al, 0x2a
push ss
or eax, dword [edx]
jnp 0x48767b
add al, byte [eax]
add al, 3
adc al, byte [eax]
adc al, 0x12
add dword [eax], ebp
pop eax
add byte [eax], al
push es
or al, 0x1b
lea eax, [ecx]
add byte [eax], al
add dword [ebx], edx
add al, 0x11
add al, 0x16
jb 0x48763a
sbb dword [eax], eax
jo 0x4875ea
adc dword [edi + edx], eax
add esp, dword [edx + 0x72180411]
and al, 0x1a
add byte [eax - 0x5e], dh
adc dword [ecx + ebx], eax
or byte [esp + eax*2 - 0x5dff0000], cl
adc dword [edx + ebx], eax
jb 0x4876a5
sbb dh, byte [edx + 0x40]
sbb al, byte [eax]
jo 0x48760b
adc dword [eax + ebp], eax
rol byte [eax], cl
add byte [edx], cl
sub byte [ebx + 1], bh
add byte [esi], al
or byte [edx + 0x16], ch
push 0x2e
or cl, byte [eax]
push 0x20
or byte [edx + 0x20], ch
ljmp 0x2e33:0x6a000000
or byte [edx + 0x16], ch
push 0x33
or byte [esi + eax], al
add dl, byte cs:[edx + ebp]
or dword [edx], ebp
adc al, 0x2a
add byte [eax], al
add byte [ebx], dl
xor byte [0x3c00], al
add byte [eax + eax], bl
add byte [ecx], dl
add bh, byte [ebx + 0x53]
add al, byte [eax]
add al, 0x2c
add bh, byte es:[ebx + 0x53]
add al, byte [eax]
add al, 0x6f
sub al, 0
add byte [edx], cl
sub eax, 0x537b0219
add al, byte [eax]
add al, 3
add eax, 0x698e0404
sub byte [ecx], bl
add byte [esi], al
or al, byte [esi]
push 0x16
push 0x33
add dword [edx], ebp
add bh, byte [ebx + 0x54]
add al, byte [eax]
add al, 3
adc al, 0x6f
int 0
add byte [esi], al
jp 0x487714
xor byte [ebx], al
add byte [esi], dl
add byte [eax], al
add byte [eax + eax], bh
add byte [ecx], dl
add al, byte [ebx]
sbb ch, byte [eax]
push edi
add dword [eax], eax
push es
or al, byte [esi]
sub eax, 0x62a0402
push ss
sub bl, dl
add byte [eax], al
or ch, byte [edx]
add byte [eax], al
adc esi, dword [eax]
add al, 0
adc dword [eax], eax
add byte [eax], al
cmp al, 0
add byte [ecx], dl
add al, 0x28
aam 0
add byte [edx], cl
or al, byte [edx]
add eax, dword [esi]
sbb ch, byte [eax]
pop eax
add dword [eax], eax
push es
sub al, byte [eax]
add byte [eax], al
adc esi, dword [eax]
add eax, 0x2600
add byte [eax + eax], bh
add byte [ecx], dl
add al, byte [ebx]
pop ss
sub byte [edi + 1], dl
add byte [esi], al
or al, byte [esi]
sub al, 6
push es
mov gs, word [ecx + 0x18]
das
add al, byte [edx + ebp]
sub ch, dl
add byte [eax], al
or al, byte [esi]
push ss
push es
mov gs, word [ecx + 0x18]
pop ecx
outsd dx, dword [esi]
salc
add byte [eax], al
or ch, byte [edx]
add byte [eax], al
adc esi, dword [eax]
add eax, dword [eax]
cmp eax, dword [eax]
add byte [eax], al
cmp eax, 0x3110000
add ebp, dword [0x317e07]
add byte [edx], cl
adc byte [ecx], al
sub ch, dl
add byte [eax], al
or al, byte [ebx]
outsd dx, dword [esi]
xlatb
add byte [eax], al
or cl, byte [edx]
push es
mov gs, word [ecx + 0x18]
pop eax
lea ebp, [eax + 0xb010000]
push es
pop es
push es
mov gs, word [ecx + 0x28]
fadd dword [eax]
add byte [edx], cl
pop es
push es
mov gs, word [ecx + 0x16]
pushfd
pop es
push es
mov gs, word [ecx + 0x17]
pop eax
push ss
pushfd
pop es
sub al, byte [eax]
adc esi, dword [eax]
add al, 0
adc al, byte [eax]
add byte [eax], al
cmp al, 0
add byte [ecx], dl
add al, byte [eax + ebp]
pop esp
add dword [eax], eax
push es
or al, byte [edx]
add eax, dword [esi]
push es
pop ss
sub byte [eax + 1], bl
add byte [esi], al
sub al, byte [eax]
add byte [ebx], dl
xor byte [eax + eax], al
xor eax, 0x3e000000
add byte [eax], al
adc dword [edx], eax
add ebx, dword [0x15728]
push es
or al, byte [esi]
sub eax, 0x1b2a0402
jae 0x4877d6
add byte [eax], al
or cl, byte [ebx]
push ss
or eax, 0x807072b
outsd dx, dword [esi]
fiadd dword [eax]
add byte [edx], cl
add al, byte [ebx]
push es
adc al, byte [ebx]
sub byte [eax + 1], ah
add byte [esi], al
and eax, 0x7eb2d0c
outsd dx, dword [esi]
fild dword [eax]
add byte [edx], cl
sub al, byte [eax]
add byte [eax], al
adc esi, dword [eax]
add eax, 0x9600
add byte [edi], bh
add byte [eax], al
adc dword [esi], edx
or al, byte [ebx + edx]
push es
push ss
adc eax, dword [edi]
sub ebx, dword [0x7110611]
lcall 0, 0x2f28070b
or ch, byte [0x6f070609]
and eax, 0x580a0000
or dl, byte [ecx]
pop es
pop ss
pop eax
adc eax, dword [edi]
adc dword [edi], eax
adc dword [esi], eax
mov gs, word [ecx + 0x32]
fild dword [esi]
add al, 0x8e
imul ebx, dword [eax + 0x17], 0x8d5a1858
test al, 0
add byte [ecx], al
or al, 0x16
or eax, 0x16081304