Function at 0x1017aa90
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 0x1032253f
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x60
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x6c], 0
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x54], xmm0
sqrtss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x6c], xmm0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x104c14e0]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x10612308]
mov dword [ebp - 0x4c], esi
cmp eax, dword [esi + 4]
jg 0x1017abf6
mov eax, dword [0x1061231c]
cmp eax, dword [esi + 4]
jg 0x1017ada7
movss xmm0, dword [ebp - 0x6c]
comiss xmm0, dword [0x1041ef00]
jb 0x1017abd6
mov ecx, dword [0x10612340]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x4c], eax
call dword [ebp - 0x4c]
mov ecx, dword [0x10612320]
fstp dword [ebp - 0x50]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov eax, dword [0x1060b290]
movss xmm0, dword [eax + 0x14]
lea ecx, [eax + 0x14]
movss xmm2, dword [ebp - 0x6c]
add eax, 0x20
fstp dword [ebp - 0x4c]
movss xmm1, dword [ebp - 0x4c]
maxss xmm1, xmm2
comiss xmm0, dword [eax]
movss xmm0, dword [ebp - 0x50]
divss xmm0, xmm2
cmova eax, ecx
mulss xmm1, dword [eax]
mov eax, dword [ebp - 0x5c]
mulss xmm1, xmm0
subss xmm2, xmm1
maxss xmm2, dword [0x1041ec1c]
movaps xmm0, xmm2
mulss xmm0, dword [eax]
movss dword [eax], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [eax + 4]
mulss xmm2, dword [eax + 8]
movss dword [eax + 4], xmm0
movss dword [eax + 8], xmm2
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.102bb91c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push 0x10612308
call fcn.102bba07
add esp, 4
cmp dword [0x10612308], 0xffffffff
jne 0x1017ab29
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x2c]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x2c], xmm0
push 0xd
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x54], 1
call fcn.1001a120
mov esi, 0x1040c0d4
jmp 0x1017ac48
mov al, byte [esi]
lea ecx, [ebp - 0x2c]
xor al, 0xa5
mov byte [ebp - 0x58], al
push dword [ebp - 0x58]
call fcn.1001a280
add esi, 2
cmp esi, 0x1040c0ea
jne 0x1017ac48
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
cmovae esi, dword [ebp - 0x2c]
test edi, edi
je 0x1017ac8d
push edi
push 0
push esi
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x1017ac8d
sub edx, esi
jmp 0x1017ac92
or edx, 0xffffffff
jmp 0x1017ac92
cmp edx, 0xffffffff
je 0x1017ad31
mov dword [ebp - 0x50], 1
jmp 0x1017aca4
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
lea eax, [ebp - 0x2c]
cmovae esi, dword [ebp - 0x2c]
setae cl
add esi, edx
mov byte [ebp - 0x45], cl
test cl, cl
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x58]
cmovne eax, dword [ebp - 0x2c]
sub esi, eax
mov eax, edi
sub eax, esi
cmp eax, 1
mov dword [ebp - 0x58], eax
cmovae ecx, edx
cmp byte [ebp - 0x45], 0
mov edx, dword [ecx]
lea ecx, [ebp - 0x2c]
cmovne ecx, dword [ebp - 0x2c]
sub edi, edx
add ecx, esi
mov eax, edi
sub eax, esi
inc eax
push eax
lea eax, [ecx + edx]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
cmovae esi, dword [ebp - 0x2c]
test edi, edi
je 0x1017ad21
push edi
push 0
push esi
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x1017ad21
sub edx, esi
jmp 0x1017ad26
or edx, 0xffffffff
jmp 0x1017ad26
cmp edx, 0xffffffff
jne 0x1017aca4
jmp 0x1017ad31
mov ecx, dword [0x1060b27c]
lea edx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
cmovae edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
mov dword [0x10612340], eax
cmp ecx, 0x10
jb 0x1017ad8b
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1017ad7f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1017ad7f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.102bb95a
add esp, 8
jmp 0x1017ad8b
push 0x10612308
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
mov esi, dword [ebp - 0x4c]
add esp, 4
jmp 0x1017ab29
push 0x1061231c
call fcn.102bba07
add esp, 4
cmp dword [0x1061231c], 0xffffffff
jne 0x1017ab3a
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x44]
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x44], xmm0
push 0xe
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x54], 2
call fcn.1001a120
mov esi, 0x1040c0ec
jmp 0x1017ae00
mov al, byte [esi]
lea ecx, [ebp - 0x44]
xor al, 0xa5
mov byte [ebp - 0x4c], al
push dword [ebp - 0x4c]
call fcn.1001a280
add esi, 2
cmp esi, 0x1040c104
jne 0x1017ae00
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
mov edi, dword [ebp - 0x34]
cmovae esi, dword [ebp - 0x44]
test edi, edi
je 0x1017ae45
push edi
push 0
push esi
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x1017ae45
sub edx, esi
jmp 0x1017ae4a
or edx, 0xffffffff
jmp 0x1017ae4a
cmp edx, 0xffffffff
je 0x1017aeed
mov dword [ebp - 0x50], 1
jmp 0x1017ae60
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
lea eax, [ebp - 0x44]
cmovae esi, dword [ebp - 0x44]
setae cl
add esi, edx
mov byte [ebp - 0x45], cl
test cl, cl
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x4c]
cmovne eax, dword [ebp - 0x44]
sub esi, eax
mov eax, edi
sub eax, esi
cmp eax, 1
mov dword [ebp - 0x4c], eax
cmovae ecx, edx
cmp byte [ebp - 0x45], 0
mov edx, dword [ecx]
lea ecx, [ebp - 0x44]
cmovne ecx, dword [ebp - 0x44]
sub edi, edx
add ecx, esi
mov eax, edi
sub eax, esi
inc eax
push eax
lea eax, [ecx + edx]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [ebp - 0x34], edi
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
cmovae esi, dword [ebp - 0x44]
test edi, edi
je 0x1017aedd
push edi
push 0
push esi
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x1017aedd
sub edx, esi
jmp 0x1017aee2
or edx, 0xffffffff
jmp 0x1017aee2
cmp edx, 0xffffffff
jne 0x1017ae60
jmp 0x1017aeed
mov ecx, dword [0x1060b27c]
lea edx, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
cmovae edx, dword [ebp - 0x44]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x30]
mov dword [0x10612320], eax
cmp ecx, 0x10
jb 0x1017af47
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1017af3b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1017af3b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.102bb95a
add esp, 8
jmp 0x1017af47
push 0x1061231c
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1017ab3a