Function at 0x10068790
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008110d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
mov eax, dword [0x10098010]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x5c], edi
test edx, edx
je 0x10068d54
test eax, eax
je 0x10068d54
test ecx, ecx
je 0x10068d54
movsd xmm0, qword [0x100ebd00]
ucomisd xmm0, qword [0x1008d508]
lahf
test ah, 0x44
jnp 0x10068818
mov cl, 1
jmp 0x1006881a
xor cl, cl
test cl, cl
mov dword [edi + 0x78], 0
mov eax, 4
mov esi, 1
cmovne eax, esi
mov edx, 0x1b
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x74]
mov dword [ebp - 0x4c], edx
movd xmm0, dword [eax + 0xf0]
lea eax, [edx + 1]
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x84], xmm0
movaps xmm0, xmmword [0x1008fff0]
movups xmmword [ebp - 0x48], xmm0
movaps xmm0, xmmword [str.MPVWf_LUUMJ]
movups xmmword [ebp - 0x38], xmm0
call fcn.1007cdb0
mov esi, esp
lea edi, [ebp - 0x47]
xor ecx, ecx
mov eax, 0x1b
sub edi, esi
lea edx, [ecx + esi]
mov esi, eax
sub esi, ecx
mov cl, byte [ebp - 0x48]
nop word [eax + eax]
mov al, byte [edx + edi]
lea edx, [edx + 1]
xor al, cl
mov byte [edx - 1], al
sub esi, 1
jne 0x10068890
mov ecx, dword [0x100e42e0]
mov eax, 0x1b
mov esi, esp
mov byte [esi + eax], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100f1b68]
mov dword [ebp - 0x58], ecx
cmp eax, dword [ecx + 4]
jle 0x1006890e
push 0x100f1b68
call fcn.1007bfd7
add esp, 4
cmp dword [0x100f1b68], 0xffffffff
jne 0x1006890e
mov dword [ebp - 4], 0
mov ecx, dword [0x100e898c]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
push 0x100f1b68
mov dword [0x100f1b6c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1007bf8d
add esp, 4
movaps xmm0, xmmword [0x1008fbd0]
mov edx, 0x1c
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x4c], edx
movaps xmm0, xmmword [str.ZqK_KZOZGA_]
lea eax, [edx + 1]
movups xmmword [ebp - 0x38], xmm0
call fcn.1007cdb0
mov esi, esp
lea edi, [ebp - 0x47]
xor ecx, ecx
mov dword [ebp - 0x54], esi
mov eax, 0x1c
sub edi, esi
lea edx, [ecx + esi]
mov esi, eax
sub esi, ecx
mov cl, byte [ebp - 0x48]
nop
mov al, byte [edi + edx]
lea edx, [edx + 1]
xor al, cl
mov byte [edx - 1], al
sub esi, 1
jne 0x10068950
mov esi, dword [ebp - 0x54]
mov eax, 0x1c
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
mov byte [esi + eax], 0
mov eax, dword [0x100f1b70]
cmp eax, dword [ecx + 4]
jle 0x100689c3
push 0x100f1b70
call fcn.1007bfd7
add esp, 4
cmp dword [0x100f1b70], 0xffffffff
jne 0x100689c3
mov dword [ebp - 4], 1
mov ecx, dword [0x100e898c]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
push 0x100f1b70
mov dword [0x100f1b54], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1007bf8d
add esp, 4
mov eax, dword [0x100f1b6c]
movss xmm0, dword [edi]
mov esi, dword [ebp - 0x58]
mov ecx, dword [eax + 0x2c]
xor ecx, eax
mov eax, dword [0x100f1b54]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [eax + 0x2c]
xor ecx, eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x5c], ecx
subss xmm0, dword [eax]
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [edi + 4]
subss xmm0, dword [eax + 4]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [edi + 8]
subss xmm0, dword [eax + 8]
mov eax, dword [0x100e86d0]
movss dword [ebp - 0x68], xmm0
cmp eax, dword [esi + 4]
jle 0x10068a52
push 0x100e86d0
call fcn.1007bfd7
add esp, 4
cmp dword [0x100e86d0], 0xffffffff
jne 0x10068a52
push 0x10082a70
mov byte [0x100e86fc], 0
call fcn.1007be5e
add esp, 4
push 0x100e86d0
call fcn.1007bf8d
add esp, 4
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.100752d0
mov eax, dword [0x100e86d0]
cmp eax, dword [esi + 4]
jle 0x10068aa3
push 0x100e86d0
call fcn.1007bfd7
add esp, 4
cmp dword [0x100e86d0], 0xffffffff
jne 0x10068aa3
push 0x10082a70
mov byte [0x100e86fc], 0
call fcn.1007be5e
add esp, 4
push 0x100e86d0
call fcn.1007bf8d
add esp, 4
movss xmm0, dword [ebp - 0x20]
mulss xmm0, dword [0x1008d534]
movaps xmm1, xmm0
movss dword [ebp - 0x60], xmm0
addss xmm1, dword [0x1008d5f0]
call fcn.10075ac0
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, dword [0x1008d534]
movaps xmm1, xmm0
movss dword [ebp - 0x50], xmm0
addss xmm1, dword [0x1008d5f0]
call fcn.10075ac0
mulss xmm0, dword [ebp - 0x58]
movss xmm1, dword [ebp - 0x50]
movss dword [ebp - 0x54], xmm0
call fcn.10075ac0
mulss xmm0, dword [ebp - 0x58]
movss xmm1, dword [ebp - 0x60]
movss dword [ebp - 0x50], xmm0
call fcn.10075ac0
movss xmm4, dword [ebp - 0x50]
movaps xmm3, xmm0
movss xmm5, dword [ebp - 0x54]
movaps xmm2, xmm4
xorps xmm3, xmmword [0x10090a80]
movaps xmm1, xmm5
mulss xmm1, xmm5
mov dword [ebp - 0x24], 0
mulss xmm2, xmm4
addss xmm2, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm2, xmm1
movss dword [ebp - 0x50], xmm2
sqrtss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [0x1008d514]
movss xmm2, dword [0x1008d598]
movaps xmm1, xmm2
mov dword [ebp - 0x24], 0
divss xmm1, xmm0
mulss xmm4, xmm1
mulss xmm5, xmm1
mulss xmm4, xmm4
mulss xmm5, xmm5
mulss xmm3, xmm1
addss xmm4, xmm5
mulss xmm3, xmm3
addss xmm4, xmm3
movss dword [ebp - 0x50], xmm4
sqrtss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x24], xmm0
cmp dword [edi + 0x88], 0
jle 0x10068d54
movss xmm0, dword [edi + 0x84]
lea eax, [edi + 0xc]
comiss xmm0, xmm2
movss xmm1, dword [0x1008d7e0]
jb 0x10068d54
subss xmm1, dword [edi + 0x78]
push eax
push dword [ebp - 0x74]
lea edx, [ebp - 0x70]
mov ecx, edi
push 0x600400b
movss dword [edi + 0x7c], xmm1
movaps xmm0, xmm1
mulss xmm0, dword [edi + 0x60]
addss xmm0, dword [edi]
movss dword [ebp - 0x70], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [edi + 0x64]
mulss xmm1, dword [edi + 0x68]
addss xmm0, dword [edi + 4]
addss xmm1, dword [edi + 8]
movss dword [ebp - 0x6c], xmm0
movss dword [ebp - 0x68], xmm1
call fcn.10069080
movss xmm1, dword [edi + 0x38]
add esp, 0xc
ucomiss xmm1, dword [0x1008d598]
lahf
test ah, 0x44
jnp 0x10068cfa
mov eax, dword [ebp - 0x64]
cmp dword [edi + 0x58], eax
je 0x10068cfa
movaps xmm0, xmm1
mulss xmm0, dword [edi + 0x7c]
comiss xmm0, dword [edi + 0x80]
ja 0x10068cfa
mov ecx, dword [ebp - 0x78]
mov eax, dword [ecx]
mov eax, dword [eax + 0x734]
call eax
movss xmm2, dword [ebp - 0x5c]
sub esp, 0xc
movq xmm1, qword [edi + 0x60]
mov ecx, esp
mov edx, dword [edi + 0x68]
sub esp, 0x18
mov esi, eax
lea eax, [edi + 0x84]
movss dword [esp + 0xc], xmm2
movss xmm0, dword [esi + 0x100]
movss xmm2, dword [ebp - 0x7c]
movss dword [esp + 8], xmm2
movss dword [esp], xmm0
push eax
lea eax, [edi + 0x88]
mov dword [ecx], 0
push eax
sub esp, 0xc
mov dword [ecx + 4], 0
mov eax, esp
mov dword [ecx + 8], 0
push edi
movq qword [eax], xmm1
mov dword [eax + 8], edx
lea eax, [edi + 0xc]
push eax
push esi
call fcn.10067610
test al, al
je 0x10068d54
cmp dword [edi + 0x88], 0
lea eax, [edi + 0x88]
jle 0x10068d54
movss xmm2, dword [0x1008d598]
jmp 0x10068bba
mulss xmm1, dword [edi + 0x7c]
mov esi, dword [edi + 0x74]
addss xmm1, dword [edi + 0x78]
movss dword [edi + 0x78], xmm1
mulss xmm1, dword [0x1008d51c]
movss xmm0, dword [esi + 0x110]
call fcn.10066d20
mulss xmm0, dword [edi + 0x84]
lea ecx, [edi + 0x84]
mov edx, dword [ebp - 0x64]
movss dword [ecx], xmm0
mov eax, dword [0x100e8ffc]
cmp edx, dword [eax]
sete al
movzx eax, al
push eax
push ecx
push esi
lea eax, [edi + 0xc]
push eax
push edx
call fcn.100670d0
mov al, 1
jmp 0x10068d56
xor al, al
lea esp, [ebp - 0x8c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1007ba06
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14