Function at 0x1003ca90
Capabilities:
Encode data using xor

Disassembly:
push es
outsd dx, dword [esi]
js 0x1003ca9c
add byte [esi], al
pop edx
push ds
sub byte [eax + 0x26060003], dl
add ch, byte [edi - 0x6e]
push es
add ch, byte es:[edi - 0x6e]
add dword [eax], eax
push es
or eax, 0x36280312
add dword [eax], eax
or cl, byte [ebx]
add ebp, dword [edi - 0x6e]
add dword [eax], eax
push es
or eax, 0x36280312
add dword [eax], eax
or cl, byte [esi + edx]
adc eax, dword [ebx + ebp]
push ecx
pop es
adc eax, dword [0x16061308]
adc eax, dword [edi]
sub ebp, dword [ecx]
adc dword [0xffff204b], eax
inc dword [eax]
pop edi
sub al, 0xc
adc dword [esi], eax
adc dword [0x204b], eax
add bh, bh
pushal
push esp
adc dword [edi], eax
pop ss
pop eax
adc eax, dword [edi]
adc dword [0x513581a], eax
adc dword [esi], eax
sbb bl, byte [eax + 0x13]
push es
adc dword [edi], eax
push es
xor dl, dl
adc dword [edi + edx], eax
pop eax
adc eax, dword [edi + eax]
add ch, byte [edi - 0x6f]
add dword [eax], eax
push es
pop eax
or ecx, dword [eax]
add ebp, dword [edi - 0x6f]
outsd dx, dword [esi]
xchg ecx, eax
add dword [eax], eax
push es
pop eax
or al, 0x11
add al, 2
outsd dx, dword [esi]
nop
add dword [eax], eax
push es
xor ah, byte [ebp + 0x430132a]
add byte [ecx], ah
add byte [eax], al
add byte [eax + eax - 0x518cef00], ah
or eax, 0x60a0600
add al, 0x7d
lahf
add eax, 0x3020400
push es
inc byte [esi]
scasd eax, dword es:[edi]
or eax, 0x46730600
add eax, dword [eax]
or ch, byte [eax]
pop esp
add al, 0
push es
sub al, byte [eax]
add byte [eax], al
adc esi, dword [eax]
add al, 0
sub byte [eax], al
add byte [eax], al
movsd dword es:[edi], dword [esi]
add byte [eax], al
adc dword [ebx - 0x50], esi
or eax, 0x60a0600
add al, 0x7d
mov al, byte [0x6040005]
push ss
jge 0x1003cb0b
add eax, 0x3020400
push es
inc byte [esi]
mov cl, 0xd
add byte [esi], al
jae 0x1003cbbf
add eax, dword [eax]
or ch, byte [eax]
dec eax
add eax, dword [eax]
or ch, byte [edx]
cmpsb byte [esi], byte es:[edi]
add ch, byte [eax]
sub byte [ecx], al
add byte [edx], cl
pop ds
sub ebx, dword [edi]
sub eax, 0x3156f
jle 0x1003cc33
add dword [eax], eax
or ch, byte [eax]
dec ecx
add eax, dword [eax]
or ch, byte [esi + eax]
sub byte [ecx + 0x2a2b0000], dl
add bl, byte [edi]
sub eax, 0x156f2b1f
add eax, dword [eax]
or bl, byte [edi]
pop edi
pop ds
das
outsd dx, dword [esi]
adc eax, 0x720a0003
std
or al, 0
jo 0x1003cc5c
add dword [0xf56f7000], ecx
add al, byte [eax]
or dh, byte [edx + 3]
or eax, 0x1727000
or eax, 0xf56f7000
add al, byte [eax]
or dh, byte [edx - 0x25]
or byte [eax], al
jo 0x1003cc7a
add dword [0xf56f7000], ecx
add al, byte [eax]
or cl, byte [edx]
push es
outsd dx, dword [esi]
jb 0x1003cc18
add byte [edx], cl
sbb bl, byte [ebp + 0x2c]
sbb byte [esi], al
pop ds
cmp eax, 0x726f061a
add al, byte [eax]
or bl, byte [edx]
pop ebp
pop ecx
jae 0x1003cc75
add eax, dword [eax]
or ch, byte [eax]
jne 0x1003cc32
add byte [edx], cl
or cl, byte [edx]
push es
or al, byte [esi]
sub byte [ebx + 3], cl
add byte [edx], cl
sub al, byte [esi + 0x7e]
out dx, eax
add byte [eax], al
add al, 2
outsd dx, dword [esi]
jmp 0x380dcc49
add byte [eax], al
add dword [edx], ecx
add al, byte [esi]
push ss
add ebp, dword [eax]
mov eax, dword [ebx]
add byte [esi], al
push es
sub al, byte [eax]
add byte [ebx], dl
xor byte [edx], al
add byte [0xa6000000], dl
cmpsb byte [esi], byte es:[edi]
add byte [eax], al
adc dword [ebx + 0x4c], esi
dec esp
add eax, dword [eax]
or cl, byte [edx]
add al, byte [esi]
sub byte [ebx + eax + 0x6260600], al
sub byte [edx + 4], ah
add byte [esi], al
sub dh, byte [edx]
invalid