Function at 0x1005ac70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3804
call fcn.1007cd80
mov eax, dword [0x10098010]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, ecx
cmp dword [eax], 1
mov dword [ebp - 0x361c], edi
jne 0x1005c18e
mov esi, dword [edi + 0x34]
mov eax, dword [edi + 0x38]
add eax, esi
mov dword [ebp - 0x3624], esi
mov dword [ebp - 0x35f4], eax
cmp esi, eax
je 0x1005c17e
mov ecx, dword [0x100e42e0]
mov edx, esi
mov eax, dword fs:[0x2c]
xorps xmm1, xmm1
movsd qword [ebp - 0x3600], xmm1
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x3620], esi
nop dword [eax + eax]
mov ecx, dword [edi + 0x30]
mov eax, dword [edi + 0x2c]
dec ecx
and ecx, edx
mov edi, dword [eax + ecx*4]
mov eax, dword [0x100e86d0]
mov dword [ebp - 0x35e8], edi
cmp eax, dword [esi + 4]
jle 0x1005ad33
push 0x100e86d0
call fcn.1007bfd7
add esp, 4
cmp dword [0x100e86d0], 0xffffffff
jne 0x1005ad33
push 0x10082a70
mov byte [0x100e86fc], 0
call fcn.1007be5e
push 0x100e86d0
call fcn.1007bf8d
add esp, 8
movq xmm0, qword [edi + 0xc]
sub esp, 0xc
mov eax, dword [edi + 0x14]
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [edi]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [edi + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [ebp - 0x363c]
push eax
call fcn.100750e0
mov ecx, dword [ebp - 0x3620]
mov eax, dword [0x100e86d0]
cmp eax, dword [ecx + 4]
jle 0x1005adad
push 0x100e86d0
call fcn.1007bfd7
add esp, 4
cmp dword [0x100e86d0], 0xffffffff
jne 0x1005adad
push 0x10082a70
mov byte [0x100e86fc], 0
call fcn.1007be5e
push 0x100e86d0
call fcn.1007bf8d
add esp, 8
movss xmm0, dword [ebp - 0x363c]
mulss xmm0, dword [0x1008d534]
movaps xmm1, xmm0
movss dword [ebp - 0x35e0], xmm0
addss xmm1, dword [0x1008d5f0]
call fcn.10075ac0
movss dword [ebp - 0x35dc], xmm0
movss xmm0, dword [ebp - 0x3638]
mulss xmm0, dword [0x1008d534]
movaps xmm1, xmm0
movss dword [ebp - 0x35e4], xmm0
addss xmm1, dword [0x1008d5f0]
call fcn.10075ac0
mulss xmm0, dword [ebp - 0x35dc]
movss xmm1, dword [ebp - 0x35e4]
movss dword [ebp - 0x35f0], xmm0
call fcn.10075ac0
mulss xmm0, dword [ebp - 0x35dc]
movss xmm1, dword [ebp - 0x35e0]
movss dword [ebp - 0x35ec], xmm0
call fcn.10075ac0
movss xmm3, dword [ebp - 0x35f0]
movaps xmm4, xmm0
movss xmm5, dword [ebp - 0x35ec]
movaps xmm2, xmm3
xorps xmm4, xmmword [0x10090a80]
movaps xmm1, xmm5
mulss xmm1, xmm5
mov dword [ebp - 0x36ac], 0
mulss xmm2, xmm3
movss dword [ebp - 0x35e4], xmm4
addss xmm2, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm2, xmm1
movss dword [ebp - 0x35e0], xmm2
sqrtss xmm0, dword [ebp - 0x35e0]
movss dword [ebp - 0x36ac], xmm0
cmp dword [edi + 0x30], 0xffffffff
lea eax, [edi + 0x30]
jne 0x1005b58e
cmp byte [edi + 0x19], 0
je 0x1005b3dd
mov ecx, dword [0x100e8960]
push dword [edi + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x35e8], eax
test eax, eax
je 0x1005b3dd
mov ecx, eax
call fcn.10046120
movss xmm2, dword [edi]
movss xmm1, dword [edi + 4]
mov dword [ebp - 0x364c], 0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x7c], xmm0
subss xmm1, dword [ebp - 0x78]
subss xmm2, dword [ebp - 0x7c]
movss xmm0, dword [edi + 8]
mov dword [ebp - 0x74], eax
subss xmm0, dword [ebp - 0x74]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
movss dword [ebp - 0x35e0], xmm1
sqrtss xmm0, dword [ebp - 0x35e0]
movss dword [ebp - 0x364c], xmm0
movss xmm4, dword [ebp - 0x35e4]
movss xmm3, dword [edi + 8]
movaps xmm0, xmm4
mulss xmm0, dword [ebp - 0x364c]
mov dword [ebp - 0x369c], 0
movss xmm1, dword [edi]
movss xmm2, dword [edi + 4]
subss xmm2, dword [ebp - 0x78]
subss xmm1, dword [ebp - 0x7c]
addss xmm0, xmm3
mulss xmm2, xmm2
subss xmm3, xmm0
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm3, xmm3
addss xmm2, xmm3
movss dword [ebp - 0x35e0], xmm2
sqrtss xmm0, dword [ebp - 0x35e0]
movss dword [ebp - 0x369c], xmm0
movss xmm0, dword [ebp - 0x369c]
lea eax, [ebp - 0x3584]
movss xmm1, dword [ebp - 0x35f0]
mulss xmm1, xmm0
push 0x54
mulss xmm4, xmm0
push 0
addss xmm1, dword [edi]
push eax
addss xmm4, dword [edi + 8]
movss dword [ebp - 0x35f0], xmm1
movss xmm1, dword [ebp - 0x35ec]
mulss xmm1, xmm0
movss dword [ebp - 0x35e4], xmm4
addss xmm1, dword [edi + 4]
movss dword [ebp - 0x35ec], xmm1
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [edi + 0xc]
add esp, 0xc
mov eax, dword [edi + 0x14]
movss xmm6, dword [ebp - 0x35f4]
movq qword [ebp - 0x88], xmm0
movq xmm0, qword [edi]
movss xmm2, dword [ebp - 0x88]
movss xmm1, dword [ebp - 0x84]
movq qword [ebp - 0x94], xmm0
movss xmm3, dword [ebp - 0x94]
movss xmm4, dword [ebp - 0x90]
subss xmm2, xmm3
subss xmm1, xmm4
mov dword [ebp - 0x80], eax
mov eax, dword [edi + 8]
movss xmm0, dword [ebp - 0x80]
mov dword [ebp - 0x8c], eax
movss xmm5, dword [ebp - 0x8c]
movss dword [ebp - 0x3c], xmm2
subss xmm0, xmm5
movss dword [ebp - 0x38], xmm1
mulss xmm2, xmm2
mulss xmm1, xmm1
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x30], xmm6
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
ucomiss xmm2, dword [0x1008d504]
lahf
test ah, 0x44
jnp 0x1005b0a6
mov al, 1
jmp 0x1005b0a8
xor al, al
mov ecx, dword [0x100e8974]
lea edx, [ebp - 0x3584]
movss xmm0, dword [ebp - 0x35f4]
mov esi, dword [ebp - 0x35e8]
push edx
push esi
mov byte [ebp - 7], al
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov byte [ebp - 8], 1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
movss dword [ebp - 0x4c], xmm3
movss dword [ebp - 0x48], xmm4
movss dword [ebp - 0x44], xmm5
movss dword [ebp - 0x40], xmm0
mov eax, dword [ecx]
push 0x4600400b
push edx
call dword [eax + 0xc]
cmp dword [ebp - 0x3538], esi
jne 0x1005b156
movss xmm0, dword [ebp - 0x3578]
movss dword [ebp - 0x35f0], xmm0
movss xmm0, dword [ebp - 0x3574]
movss dword [ebp - 0x35ec], xmm0
movss xmm0, dword [ebp - 0x3570]
movss dword [ebp - 0x35e4], xmm0
call fcn.1005c420
mov ecx, dword [0x100e8968]
mov esi, eax
movss xmm2, dword [ebp - 0x35ec]
movss xmm1, dword [ebp - 0x35e4]
movss dword [ebp - 0x3504], xmm2
movss xmm0, dword [ecx + 0x10]
mov ecx, dword [edi + 0x1c]
mov edx, dword [esi + 8]
mov dword [ebp - 0x351c], ecx
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x3518], ecx
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x3514], ecx
mov ecx, dword [esi + 0x10]
movss dword [ebp - 0x3520], xmm0
movss xmm0, dword [ebp - 0x35f0]
movss dword [ebp - 0x3508], xmm0
lea eax, [ecx + 1]
movss dword [ebp - 0x3500], xmm1
mov dword [ebp - 0x3510], 0
mov dword [ebp - 0x350c], 0x437f0000
cmp edx, eax
ja 0x1005b1ea
push ecx
mov ecx, esi
call fcn.1004ab30
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [edx - 1]
and dword [esi + 0xc], eax
lea eax, [edx - 1]
add ecx, dword [esi + 0xc]
and ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x35e8], ecx
cmp dword [eax + ecx*4], 0
jne 0x1005b222
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov edx, dword [ebp - 0x35e8]
mov dword [ecx + edx*4], eax
mov ecx, edx
mov eax, dword [esi + 4]
mov ecx, dword [eax + ecx*4]
movups xmm0, xmmword [ebp - 0x3520]
mov eax, dword [ebp - 0x3500]
movsd xmm1, qword [ebp - 0x3600]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x3510]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
inc dword [esi + 0x10]
movsd xmm0, qword [0x100eb4c0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c157
movsd xmm0, qword [0x100eb498]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005b27a
mov al, 1
jmp 0x1005b27c
xor al, al
test al, al
je 0x1005c157
call fcn.1005c650
movsd xmm0, qword [0x100eb4c8]
mov esi, eax
call fcn.1007ce50
movq xmm0, qword [edi]
mov ecx, eax
shr ecx, 0x10
movq qword [ebp - 0xac], xmm0
movss xmm0, dword [ebp - 0xac]
mov byte [ebp - 0x3602], al
mov byte [ebp - 0x3604], cl
mov ecx, eax
shr eax, 0x18
movss dword [ebp - 0x3520], xmm0
movss xmm0, dword [ebp - 0xa8]
mov byte [ebp - 0x3601], al
mov eax, dword [edi + 8]
mov dword [ebp - 0xa4], eax
mov eax, dword [0x100e8ffc]
movss dword [ebp - 0x351c], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0x3518], xmm0
mov eax, dword [eax]
movss xmm0, dword [ebp - 0x35f0]
shr ecx, 8
mov dword [ebp - 0x3504], eax
movss dword [ebp - 0x3514], xmm0
movss xmm0, dword [ebp - 0x35ec]
mov byte [ebp - 0x3603], cl
mov eax, dword [ebp - 0x3604]
mov dword [ebp - 0x3508], eax
mov eax, dword [0x100e8968]
movss dword [ebp - 0x3510], xmm0
movss xmm0, dword [ebp - 0x35e4]
movss dword [ebp - 0x350c], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x3500], xmm0
movsd xmm0, qword [0x100ea7b0]
ucomisd xmm0, qword [ebp - 0x3600]
lahf
test ah, 0x44
jnp 0x1005c157
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
lea eax, [edx + 1]
cmp ecx, eax
ja 0x1005b392
push ecx
mov ecx, esi
call fcn.1004ab30
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea eax, [ecx - 1]
and dword [esi + 0xc], eax
lea eax, [ecx - 1]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
add edi, edx
and edi, eax
cmp dword [ecx + edi*4], 0
jne 0x1005b3be
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + edi*4]
movups xmm0, xmmword [ebp - 0x3520]
mov eax, dword [ebp - 0x3500]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x3510]
jmp 0x1005c14d
movsd xmm0, qword [0x100eb4c0]
movsd xmm1, qword [ebp - 0x3600]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c157
movsd xmm0, qword [0x100eb498]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005b411
mov al, 1
jmp 0x1005b413
xor al, al
test al, al
je 0x1005c157
call fcn.1005c650
movsd xmm0, qword [0x100eb4c8]
mov esi, eax
call fcn.1007ce50
movq xmm0, qword [edi + 0xc]
mov ecx, eax
movq qword [ebp - 0xa0], xmm0
movq xmm0, qword [edi]
shr ecx, 0x10
mov byte [ebp - 0x3606], al
movq qword [ebp - 0xb8], xmm0
movss xmm0, dword [ebp - 0xb8]
mov byte [ebp - 0x3608], cl
mov ecx, eax
shr eax, 0x18
mov byte [ebp - 0x3605], al
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x98], eax
mov eax, dword [edi + 8]
movss dword [ebp - 0x3520], xmm0
movss xmm0, dword [ebp - 0xb4]
mov dword [ebp - 0xb0], eax
mov eax, dword [0x100e8ffc]
movss dword [ebp - 0x351c], xmm0
movss xmm0, dword [ebp - 0xb0]
movss dword [ebp - 0x3518], xmm0
mov eax, dword [eax]
movss xmm0, dword [ebp - 0xa0]
shr ecx, 8
mov dword [ebp - 0x3504], eax
movss dword [ebp - 0x3514], xmm0
movss xmm0, dword [ebp - 0x9c]
mov byte [ebp - 0x3607], cl
mov eax, dword [ebp - 0x3608]
mov dword [ebp - 0x3508], eax
mov eax, dword [0x100e8968]
movss dword [ebp - 0x3510], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0x350c], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x3500], xmm0
movsd xmm0, qword [0x100ea7b0]
ucomisd xmm0, qword [ebp - 0x3600]
lahf
test ah, 0x44
jnp 0x1005c157
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
lea eax, [edx + 1]
cmp ecx, eax
ja 0x1005b53f
push ecx
mov ecx, esi
call fcn.1004ab30
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea eax, [ecx - 1]
and dword [esi + 0xc], eax
lea eax, [ecx - 1]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
add edi, edx
and edi, eax
cmp dword [ecx + edi*4], 0
jne 0x1005b3be
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
movups xmm0, xmmword [ebp - 0x3520]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x3500]
mov ecx, dword [ecx + edi*4]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x3510]
jmp 0x1005c14d
movss xmm2, dword [edi]
movss xmm1, dword [edi + 4]
subss xmm1, dword [edi + 0x3050]
movq xmm0, qword [edi + 0xc]
subss xmm2, dword [edi + 0x304c]
mov eax, dword [edi + 0x14]
movq qword [ebp - 0x58], xmm0
movss xmm0, dword [edi + 8]
subss xmm0, dword [edi + 0x3054]
mulss xmm1, xmm1
mov dword [ebp - 0x50], eax
mulss xmm2, xmm2
mov dword [ebp - 0x365c], 0
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
movss dword [ebp - 0x35e0], xmm1
sqrtss xmm0, dword [ebp - 0x35e0]
movss dword [ebp - 0x365c], xmm0
movss xmm0, dword [ebp - 0x365c]
movaps xmm2, xmm5
movss xmm6, dword [0x1008d5a8]
movaps xmm1, xmm4
mov ecx, dword [0x100e8960]
push dword [edi + 0x2c]
mulss xmm3, xmm0
mulss xmm2, xmm0
mulss xmm1, xmm0
mulss xmm3, xmm6
mulss xmm2, xmm6
addss xmm3, dword [edi]
mulss xmm1, xmm6
addss xmm2, dword [edi + 4]
addss xmm1, dword [edi + 8]
movss dword [edi + 0xc], xmm3
movss dword [edi + 0x10], xmm2
movss dword [edi + 0x14], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x35dc], eax
test eax, eax
je 0x1005bd0f
mov edx, dword [eax + 8]
add eax, 8
mov ecx, eax
mov dword [ebp - 0x35f8], eax
mov edx, dword [edx + 0x24]
call edx
test al, al
jne 0x1005bd0f
mov ecx, dword [ebp - 0x35dc]
call fcn.1007ad50
cmp dword [eax], 0
jne 0x1005bd0f
push dword [ebp - 0x35dc]
lea ecx, [ebp - 0x34fc]
call fcn.100547b0
push 0
push dword [ebp - 0x35dc]
lea ecx, [edi + 0x30]
call fcn.10054a70
push 0x54
lea eax, [ebp - 0x35d8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [edi + 0xc]
add esp, 0xc
mov eax, dword [edi + 0x14]
movq qword [ebp - 0x70], xmm0
movq xmm0, qword [edi]
movss xmm2, dword [ebp - 0x70]
movss xmm1, dword [ebp - 0x6c]
movq qword [ebp - 0x64], xmm0
movss xmm3, dword [ebp - 0x64]
movss xmm4, dword [ebp - 0x60]
subss xmm2, xmm3
mov dword [ebp - 0x68], eax
subss xmm1, xmm4
mov eax, dword [edi + 8]
movss xmm0, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
movss xmm5, dword [ebp - 0x5c]
movss dword [ebp - 0x120], xmm2
subss xmm0, xmm5
movss xmm6, dword [ebp - 0x35f4]
movss dword [ebp - 0x11c], xmm1
mulss xmm2, xmm2
mulss xmm1, xmm1
movss dword [ebp - 0x118], xmm0
mulss xmm0, xmm0
addss xmm2, xmm1
movss dword [ebp - 0x114], xmm6
addss xmm2, xmm0
ucomiss xmm2, dword [0x1008d504]
lahf
test ah, 0x44
jnp 0x1005b75c
mov al, 1
jmp 0x1005b75e
xor al, al
mov ecx, dword [0x100e8974]
lea edx, [ebp - 0x35d8]
movss xmm0, dword [ebp - 0x35f4]
push edx
push dword [ebp - 0x35dc]
mov byte [ebp - 0xeb], al
lea edx, [ebp - 0x130]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0xec], 1
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x110], 0
movss dword [ebp - 0x130], xmm3
movss dword [ebp - 0x12c], xmm4
movss dword [ebp - 0x128], xmm5
movss dword [ebp - 0x124], xmm0
mov eax, dword [ecx]
push 0x4600400b
push edx
call dword [eax + 0xc]
push 1
push dword [ebp - 0x35dc]
lea ecx, [ebp - 0x34fc]
call fcn.10054a70
mov eax, dword [ebp - 0x35dc]
cmp dword [ebp - 0x358c], eax
jne 0x1005b849
movss xmm0, dword [ebp - 0x35cc]
movss dword [edi + 0xc], xmm0
movss xmm0, dword [ebp - 0x35c8]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [ebp - 0x35c4]
movss dword [edi + 0x14], xmm0
mov byte [edi + 0x18], 1
movsd xmm0, qword [0x100eb4c0]
movsd xmm1, qword [ebp - 0x3600]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005b9f1
movsd xmm0, qword [0x100eb498]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005b87d
mov al, 1
jmp 0x1005b87f
xor al, al
test al, al
je 0x1005b9f1
call fcn.1005c650
movsd xmm0, qword [0x100eb4c8]
mov dword [ebp - 0x35e0], eax
call fcn.1007ce50
mov edx, eax
mov ecx, edx
shr ecx, 8
movzx esi, cl
movzx ecx, dl
shl ecx, 8
or esi, ecx
mov ecx, edx
shr ecx, 0x10
and edx, 0xff000000
shl esi, 8
movzx eax, cl
or esi, eax
mov eax, dword [0x100e8ffc]
or esi, edx
cmp byte [edi + 0x18], 0
lea edx, [edi + 0xc]
mov dword [ebp - 0x10], esi
mov ecx, dword [eax]
lea eax, [ebp - 0x58]
cmovne eax, edx
mov dword [ebp - 0xc], ecx
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0xdc], xmm0
movq xmm0, qword [edi]
movq qword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0xe8]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0xe4]
mov dword [ebp - 0xd4], eax
mov eax, dword [edi + 8]
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0xe0], eax
movss xmm0, dword [ebp - 0xe0]
mov eax, dword [0x100e8968]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0xdc]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0xd8]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0xd4]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 8], xmm0
movsd xmm0, qword [0x100ea7b0]
ucomisd xmm0, qword [ebp - 0x3600]
lahf
test ah, 0x44
jnp 0x1005b9f1
mov esi, dword [ebp - 0x35e0]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
ja 0x1005b99e
push ecx
mov ecx, esi
call fcn.1004ab30
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [edx - 1]
and dword [esi + 0xc], eax
lea eax, [edx - 1]
add ecx, dword [esi + 0xc]
and ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x35dc], ecx
cmp dword [eax + ecx*4], 0
jne 0x1005b9d6
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov edx, dword [ebp - 0x35dc]
mov dword [ecx + edx*4], eax
mov ecx, edx
mov eax, dword [esi + 4]
mov ecx, dword [eax + ecx*4]
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x18]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
inc dword [esi + 0x10]
cmp byte [edi + 0x19], 0
je 0x1005bb7d
call fcn.1005c420
cmp byte [edi + 0x18], 0
mov esi, eax
je 0x1005ba3b
movq xmm0, qword [edi + 0xc]
mov ecx, dword [edi + 0x14]
movq qword [ebp - 0x3630], xmm0
movss xmm2, dword [ebp - 0x3630]
movss xmm3, dword [ebp - 0x362c]
mov dword [ebp - 0x3628], ecx
movss xmm1, dword [ebp - 0x3628]
jmp 0x1005bad1
movss xmm1, dword [edi]
movss xmm2, dword [edi + 4]
subss xmm2, dword [edi + 0x3050]
subss xmm1, dword [edi + 0x304c]
movss xmm0, dword [edi + 8]
subss xmm0, dword [edi + 0x3054]
mov dword [ebp - 0x366c], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [ebp - 0x35e0], xmm2
sqrtss xmm0, dword [ebp - 0x35e0]
movss dword [ebp - 0x366c], xmm0
movss xmm0, dword [ebp - 0x366c]
movss xmm3, dword [ebp - 0x35ec]
movss xmm1, dword [ebp - 0x35e4]
movss xmm2, dword [ebp - 0x35f0]
mulss xmm3, xmm0
mulss xmm1, xmm0
addss xmm3, dword [edi + 4]
mulss xmm2, xmm0
addss xmm1, dword [edi + 8]
addss xmm2, dword [edi]
mov eax, dword [0x100e8968]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
movss dword [ebp - 0x10], xmm2
movss xmm0, dword [eax + 0x10]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + 1]
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0xc], xmm3
movss dword [ebp - 8], xmm1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0x437f0000
cmp edx, eax
ja 0x1005bb2a
push ecx
mov ecx, esi
call fcn.1004ab30
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [edx - 1]
and dword [esi + 0xc], eax
lea eax, [edx - 1]
add ecx, dword [esi + 0xc]
and ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x35dc], ecx
cmp dword [eax + ecx*4], 0
jne 0x1005bb62
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov edx, dword [ebp - 0x35dc]
mov dword [ecx + edx*4], eax
mov ecx, edx
mov eax, dword [esi + 4]
mov ecx, dword [eax + ecx*4]
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x18]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
inc dword [esi + 0x10]
mov edx, 9
mov dword [ebp - 0x352c], 0xc611a41
mov dword [ebp - 0x3530], edx
mov dword [ebp - 0x3528], 0x61121208
mov dword [ebp - 0x3524], 0x611c
lea eax, [edx + 1]
call fcn.1007cdb0
mov esi, esp
lea edi, [ebp - 0x352b]
xor ecx, ecx
mov dword [ebp - 0x35dc], esi
mov eax, 9
sub edi, esi
lea edx, [ecx + esi]
mov esi, eax
sub esi, ecx
mov cl, byte [ebp - 0x352c]
mov al, byte [edx + edi]
lea edx, [edx + 1]
xor al, cl
mov byte [edx - 1], al
sub esi, 1
jne 0x1005bbd2
mov esi, dword [ebp - 0x35dc]
mov eax, 9
movaps xmm0, xmmword [0x100902b0]
mov edx, 0x15
mov dword [ebp - 0x3518], edx
movups xmmword [ebp - 0x3514], xmm0
mov byte [esi + eax], 0
lea eax, [edx + 1]
mov dword [ebp - 0x3504], 0x77736466
mov dword [ebp - 0x3500], 0x1c72
call fcn.1007cdb0
mov esi, esp
lea edi, [ebp - 0x3513]
xor ecx, ecx
mov dword [ebp - 0x35e4], esi
mov eax, 0x15
sub edi, esi
lea edx, [ecx + esi]
mov esi, eax
sub esi, ecx
mov cl, byte [ebp - 0x3514]
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 0x1005bc50
mov esi, dword [ebp - 0x35e4]
mov eax, 0x15
mov ecx, dword [ebp - 0x35f8]
mov edi, dword [ebp - 0x35e8]
mov byte [esi + eax], 0
mov eax, dword [0x100e8994]
mov eax, dword [eax]
mov esi, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
lea ecx, [ebp - 0x3804]
push ecx
mov ecx, dword [0x100e8994]
push eax
call esi
cmp byte [ebp - 0x36c8], 0
je 0x1005bd03
cmp byte [edi + 0x19], 0
jne 0x1005c157
cmp byte [edi + 0x18], 0
jne 0x1005c157
mov eax, dword [0x100e898c]
lea edx, [ebp - 0x360c]
push dword [ebp - 0x35dc]
mov dword [ebp - 0x360c], 0xfff9ab33
push edx
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 0x64]
call eax
push dword [ebp - 0x35e4]
lea eax, [ebp - 0x3610]
mov dword [ebp - 0x3610], 0xffffffff
push eax
push 1
call fcn.10078480
add esp, 0x18
jmp 0x1005c157
mov ecx, edi
call fcn.1005c1b0
jmp 0x1005c157
cmp byte [edi + 0x19], 0
je 0x1005bfec
call fcn.1005c420
movss xmm1, dword [edi]
mov esi, eax
movss xmm2, dword [edi + 4]
subss xmm2, dword [edi + 0x3050]
subss xmm1, dword [edi + 0x304c]
movss xmm0, dword [edi + 8]
subss xmm0, dword [edi + 0x3054]
mov dword [ebp - 0x367c], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [ebp - 0x35f8], xmm2
sqrtss xmm0, dword [ebp - 0x35f8]
movss dword [ebp - 0x367c], xmm0
movss xmm0, dword [ebp - 0x367c]
mov eax, dword [0x100e8968]
movss xmm3, dword [ebp - 0x35f0]
movss xmm2, dword [ebp - 0x35ec]
movss xmm1, dword [ebp - 0x35e4]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mulss xmm3, xmm0
mov dword [ebp - 0x18], 0
mulss xmm2, xmm0
mov dword [ebp - 0x14], 0x437f0000
addss xmm3, dword [edi]
mulss xmm1, xmm0
movss xmm0, dword [eax + 0x10]
mov eax, dword [edi + 0x1c]
addss xmm2, dword [edi + 4]
addss xmm1, dword [edi + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + 1]
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0x10], xmm3
movss dword [ebp - 0xc], xmm2
movss dword [ebp - 8], xmm1
cmp edx, eax
ja 0x1005be0f
push ecx
mov ecx, esi
call fcn.1004ab30
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [edx - 1]
and dword [esi + 0xc], eax
lea eax, [edx - 1]
add ecx, dword [esi + 0xc]
and ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x35e8], ecx
cmp dword [eax + ecx*4], 0
jne 0x1005be47
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov edx, dword [ebp - 0x35e8]
mov dword [ecx + edx*4], eax
mov ecx, edx
mov eax, dword [esi + 4]
mov ecx, dword [eax + ecx*4]
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 8]
movsd xmm1, qword [ebp - 0x3600]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x18]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
inc dword [esi + 0x10]
movsd xmm0, qword [0x100eb4c0]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c157
movsd xmm0, qword [0x100eb498]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c157
call fcn.1005c650
mov ecx, dword [0x100e8ffc]
push dword [ecx]
mov ecx, dword [0x100e8968]
movss xmm2, dword [ecx + 0x10]
mov ecx, eax
call fcn.1004aa40
test al, al
jne 0x1005c157
call fcn.1005c650
movsd xmm0, qword [0x100eb4c8]
mov esi, eax
call fcn.1007ce50
movss xmm1, dword [edi]
mov ecx, eax
movss xmm2, dword [edi + 4]
subss xmm2, dword [edi + 0x3050]
subss xmm1, dword [edi + 0x304c]
movss xmm0, dword [edi + 8]
subss xmm0, dword [edi + 0x3054]
shr ecx, 0x10
mulss xmm2, xmm2
mov byte [ebp - 0x3618], cl
mov ecx, eax
mulss xmm1, xmm1
shr ecx, 8
mulss xmm0, xmm0
mov byte [ebp - 0x3616], al
addss xmm2, xmm1
shr eax, 0x18
mov byte [ebp - 0x3615], al
mov eax, dword [0x100e8ffc]
mov byte [ebp - 0x3617], cl
mov dword [ebp - 0x368c], 0
addss xmm2, xmm0
mov ecx, dword [eax]
movss dword [ebp - 0x35f8], xmm2
sqrtss xmm0, dword [ebp - 0x35f8]
movss dword [ebp - 0x368c], xmm0
movss xmm0, dword [ebp - 0x368c]
movss xmm2, dword [ebp - 0x35f0]
movss xmm3, dword [ebp - 0x35ec]
movss xmm1, dword [ebp - 0x35e4]
mov eax, dword [edi + 8]
mulss xmm2, xmm0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x3618]
mulss xmm3, xmm0
mov dword [ebp - 0xc], ecx
addss xmm2, dword [edi]
mulss xmm1, xmm0
movq xmm0, qword [edi]
addss xmm3, dword [edi + 4]
addss xmm1, dword [edi + 8]
movq qword [ebp - 0xd0], xmm0
movss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0xcc]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0xc8]
movss dword [ebp - 0x20], xmm0
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm3
movss dword [ebp - 0x14], xmm1
jmp 0x1005c0cd
movsd xmm0, qword [0x100eb4c0]
movsd xmm1, qword [ebp - 0x3600]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c157
movsd xmm0, qword [0x100eb498]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005c020
mov al, 1
jmp 0x1005c022
xor al, al
test al, al
je 0x1005c157
call fcn.1005c650
movsd xmm0, qword [0x100eb4c8]
mov esi, eax
call fcn.1007ce50
movq xmm0, qword [edi]
mov ecx, eax
shr ecx, 0x10
movq qword [ebp - 0xc4], xmm0
movss xmm0, dword [ebp - 0xc4]
mov byte [ebp - 0x3614], cl
mov ecx, eax
mov byte [ebp - 0x3612], al
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0xc0]
shr ecx, 8
shr eax, 0x18
mov byte [ebp - 0x3611], al
mov eax, dword [edi + 8]
mov dword [ebp - 0xbc], eax
mov eax, dword [0x100e8ffc]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0xbc]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x58]
mov eax, dword [eax]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x54]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x50]
mov byte [ebp - 0x3613], cl
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x3614]
movss dword [ebp - 0x14], xmm0
mov dword [ebp - 0x10], eax
mov eax, dword [0x100e8968]
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 8], xmm0
movsd xmm0, qword [0x100ea7b0]
ucomisd xmm0, qword [ebp - 0x3600]
lahf
test ah, 0x44
jnp 0x1005c157
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
lea eax, [edx + 1]
cmp ecx, eax
ja 0x1005c110
push ecx
mov ecx, esi
call fcn.1004ab30
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
lea eax, [ecx - 1]
and dword [esi + 0xc], eax
lea eax, [ecx - 1]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
add edi, edx
and edi, eax
cmp dword [ecx + edi*4], 0
jne 0x1005c13c
push 0x24
call fcn.1007ba14
mov ecx, dword [esi + 4]
add esp, 4
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + edi*4]
movups xmm0, xmmword [ebp - 0x28]
mov eax, dword [ebp - 8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x18]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
inc dword [esi + 0x10]
mov esi, dword [ebp - 0x3624]
mov edi, dword [ebp - 0x361c]
inc esi
cmp esi, dword [ebp - 0x35f4]
mov edx, esi
mov dword [ebp - 0x3624], esi
mov esi, dword [ebp - 0x3620]
jne 0x1005ace0
lea ecx, [edi + 0x14]
call fcn.10045ba0
lea ecx, [edi + 0x28]
call fcn.10045ba0
lea esp, [ebp - 0x380c]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007ba06
mov esp, ebp
pop ebp
ret 4