Function at 0x10066420
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006b438
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x10077008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.10066000
mov ecx, dword [0x10078aa0]
mov edx, dword [eax]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov edi, eax
test edi, edi
je 0x100666b1
mov ecx, dword [edi]
mov edx, dword [ecx + 0x1d8]
mov ecx, edi
call edx
test al, al
je 0x100666b1
mov ecx, esi
call fcn.100661b0
test al, al
je 0x10066507
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x4a4]
call eax
cmp eax, 2
jne 0x100664d8
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x4a4]
call eax
cmp eax, 2
jne 0x100664b7
movss xmm0, dword [esi + 0x780]
jmp 0x100664c4
cmp eax, 0xf
jne 0x10066507
movss xmm0, dword [esi + 0x784]
ucomiss xmm0, dword [0x10070d94]
lahf
test ah, 0x44
jnp 0x10066507
mov al, 1
jmp 0x100666b3
cmp eax, 0xf
jne 0x10066507
mov ecx, esi
call fcn.100666d0
ucomiss xmm0, dword [0x10070d94]
lahf
test ah, 0x44
jnp 0x10066507
mov ecx, esi
call fcn.100666d0
mov eax, dword [0x10078a60]
movss xmm1, dword [eax + 0xc]
comiss xmm1, xmm0
ja 0x100664d1
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1007885c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [0x1007c8e0]
cmp eax, dword [ebx + 4]
jle 0x100665c0
push 0x1007c8e0
call fcn.10067831
add esp, 4
cmp dword [0x1007c8e0], 0xffffffff
jne 0x100665c0
mov dword [ebp - 4], 0
xor ecx, ecx
movaps xmm0, xmmword [0x10071080]
movups xmmword [ebp - 0x50], xmm0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xe
jb 0x10066555
movaps xmm0, xmmword [0x10071240]
xor ecx, ecx
mov byte [ebp - 0x41], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x3d3f2c3f
mov dword [ebp - 0x14], 0x2c3b2a
mov al, byte [ebp - 0x28]
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 0x16
jb 0x10066581
mov ecx, dword [0x1007c134]
lea eax, [ebp - 0x4f]
push 0
push eax
lea eax, [ebp - 0x27]
mov byte [ebp - 0x11], 0
push eax
call fcn.1005ee80
push 0x1007c8e0
mov dword [0x1007c900], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100677f2
add esp, 4
mov eax, dword [0x10078a60]
movss xmm0, dword [eax + 0xc]
mov eax, dword [0x1007c900]
comiss xmm0, dword [eax + edi]
jb 0x100666b1
mov eax, dword [0x1007c964]
cmp eax, dword [ebx + 4]
jle 0x10066698
push 0x1007c964
call fcn.10067831
add esp, 4
cmp dword [0x1007c964], 0xffffffff
jne 0x10066698
mov dword [ebp - 4], 1
xor ecx, ecx
movaps xmm0, xmmword [0x10071770]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x44515164
mov word [ebp - 0x14], 0x4e46
mov byte [ebp - 0x12], 0
nop dword [eax]
mov al, byte [ebp - 0x28]
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 0x15
jb 0x10066630
movaps xmm0, xmmword [0x10071280]
xor ecx, ecx
mov byte [ebp - 0x12], 0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0x33322d3c
mov byte [ebp - 0x2c], 0
nop dword [eax]
mov al, byte [ebp - 0x40]
xor byte [ebp + ecx - 0x3f], al
inc ecx
cmp ecx, 0x13
jb 0x10066660
mov ecx, dword [0x1007c134]
lea eax, [ebp - 0x27]
push 0
push eax
lea eax, [ebp - 0x3f]
mov byte [ebp - 0x2c], 0
push eax
call fcn.1005ee80
push 0x1007c964
mov dword [0x1007c960], eax
call fcn.100677f2
add esp, 4
mov eax, dword [0x10078a60]
movss xmm0, dword [eax + 0xc]
mov eax, dword [0x1007c960]
comiss xmm0, dword [eax + esi]
jae 0x100664d1
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100671ce
mov esp, ebp
pop ebp
ret