Function at 0x1510388
Capabilities:
Encode data using xor

Disassembly:
jmp 0x1510392
pushal
call 0x1510398
pop ebp
sub ebp, 0x10
sub ebp, 0x1110388
jmp 0x15103ae
mov eax, 0x1110388
add eax, ebp
add eax, 0x4c
mov ecx, 0x5bc
mov edx, 0x3e7dd98c
xor byte [eax], dl
inc eax
dec ecx
jne 0x15103c5
jmp 0x15103d8
pop es
inc ecx
pop es
add eax, 0x8c8c8cb0
or eax, 0x8c8c744d
mov word [edi - 0x7374cbbf], cs
mov word [esi + esi - 0x7373735c], cs
jnp 0x1510462
pop dword [edi + eax + 0xd]
or byte [esp + ecx*4 + 0x1498f8c], 0xe8
test al, 0x70
add eax, 0xe4dca888
mov word [edx - 0x53], ss
mov esp, fs
or ch, byte [ecx - 0x5f72739d]
test al, 0xe4
mov edx, 0x896483b5
mov word [esp + ecx*4 - 0x73735b9b], cs
mov ecx, ds
pop es
mov dword fs:[esp + ecx*4 - 0x735b9a74], ecx
mov word [ecx + ebx*8 + 0x9076007], cs
test byte [esp + ecx*4 - 0x7fe6f874], cl
mov word [esp + ecx*4 - 0x7363fef9], cs
mov word [ebp - 0x7373735c], cs
fld dword [edi]
pushal
pop es
or dword [esp + ecx*4 + 0x19078c8c], eax
or byte [esp + ecx*4 - 0x63fef874], 0x8c
mov word [ebp + ecx*2 - 0x7142719b], cs
cmovle ecx, dword [eax + 0x780983c5]
jae 0x15104b8
jae 0x1510418
dec esi
or byte [edi + eax - 0x73775800], 0x8c
mov esp, fs
mov word [edx - 0x53], ss
mov esp, fs
or ch, byte [ecx - 0x5f72739d]
test al, 0xdd
mov dword fs:[esp + ecx*4 - 0x71209a74], ecx
mov word [ecx + eax + 0x570a8e8], cs
mov al, byte [0xa8e001a8]
mov word [ebp - 0x73737121], cs
add eax, ebp
test al, 0x70
add eax, 0xe001a8a0
test al, 0x8c
jae 0x151046f
test al, 1
loopne 0x151041b
invalid
xor byte [ebx - 7], 0x84
mov word fs:[esp + ecx*4 - 0x737bcef9], cs
mov word [ebp + ecx + 0x7698257d], cs
push esi
or eax, 0x7698257d
push esi
mov word [edi], es
xor dword [esp + ecx*4 + 0x7d0d8c8c], eax
and eax, 0xd567698
jge 0x15104b3
and eax, 0xbf567698
inc ebp
or eax, 0x4d94137e
cwde
jbe 0x15104e7
mov edi, 0x137e0d45
xchg esp, eax
dec ebp
loopne 0x15104a7
jle 0x15104af
xchg esp, eax
dec ebp
loopne 0x151045f
pop esi
pcmpgtb mm1, qword [ecx - 0x3df77c3c]
mov word [esp + ecx*4 - 0x733bfb7d], cs
ret 0x8c8c
mov word [edx + ebp*8 + 0xcb59007], cs
nop
mov ch, 0xc
ja 0x151051c
or dword [eax], 0xffffff96
mov word [esp + ecx*4 - 0x7c9a88f4], cs
or byte [ebp - 0x15737374], bl
or eax, 0x83a97377
or byte [ecx - 0x32737374], bl
inc eax
jae 0x151054a
popfd
mov word [esp + ecx*4 + 0x73770dea], cs
test eax, 0x8c990883
mov word [ebp + ecx*8 + 0x73734065], cs
jae 0x151047e
sal byte [ebp - 0x76b2f073], 0xf
mov byte fs:[ebp + 0x31], ah
jae 0x1510559
jae 0x151048d
movsd dword es:[edi], dword [esi]
fdiv dword [ebp - 0x75b2f072]
pcmpgtd mm1, qword [eax + 0x6589640f]
daa
jae 0x151056b
jae 0x15104cb
dec esi
or byte [ecx + ebx*8 - 0x24259ff9], 0xd9
pop es
stc
add byte [edi], 0xf1
test byte [eax + 0x3e], dh
or al, 6
mov cl, byte [0x8c8c8d4a]
mov word [ebx + ecx*4], es
or eax, 0x8c8c8d4b
invalid
aaa
mov cs, word [esp + ecx*4 - 0x7ca17174]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x540f, 0x835e9eca
jae 0x15105a6
jae 0x15104c3
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
or dword [edi], 0xffffffe6
mov word [esp + ecx*4 + 0x5e8e4cbf], cs
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
or dword [edi], 0xffffffa6
lea ecx, [esp + ecx*4 + 0x9835e8e]
mov dword [esp + ecx*4 - 0x3565f974], ecx
sahf
pop esi
lahf
dec esp
mov ds, word [esi - 0x7d]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x8e4c, 0x9f5e9eca
pop esi
or dword [ecx], 0xffffff89
mov word [esp + ecx*4 - 0x613565fa], cs
pop esi
lahf
dec esp
mov ds, word [esi - 0x7d]
or dword [ecx + 0x68c8c8c], ecx
lcall 0x834c, 0x9f5e9eca
or byte [edx + 0x78c8c8c], cl
push ebx
cmpsd dword [esi], dword es:[edi]
push esp
push es
pop dword [ebx + ecx*4]
retf