Function at 0x1002e320
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f98bf
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x328
mov eax, dword [0x101180c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2c4], edi
lea eax, [ebp - 0x54]
mov dword [ebp - 0x24c], 0
push eax
mov dword [ebp - 0x54], 0
call fcn.1002df00
push 0
push dword [0x1013bb3c]
push dword [0x1013bb38]
call fcn.100f7d20
cmp eax, dword [0x1013bb3c]
je 0x1002e3c3
cmp dword [ebp - 0x54], 0
jne 0x1002e3c3
mov eax, dword [edi + 0x3a0c]
cmp eax, dword [edi + 0x3a10]
je 0x1002e3b8
mov dword [edi + 0x3a10], eax
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
call fcn.1002df00
cmp dword [0x10138160], 0
jne 0x1002e3d9
cmp dword [0x10138158], 0x1f
jne 0x10030be1
mov ecx, dword [edi + 0x3a00]
cmp ecx, dword [edi + 0x3a04]
je 0x10030be1
mov edx, dword [edi + 0x3a04]
mov eax, edx
push dword [ebp - 0x30]
sub eax, ecx
sar eax, 2
push eax
call fcn.100347d0
movaps xmm0, xmmword [0x1010d300]
xor eax, eax
mov byte [0x10138254], al
add esp, 8
mov esi, dword [edi + 0x3a00]
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x204], eax
mov eax, dword [edi + 0x3a04]
mov dword [ebp - 0x2d4], 0xffffffff
mov dword [ebp - 0x2cc], 0xffffffff
mov dword [ebp - 0x208], 0xbf800000
mov dword [ebp - 0x200], 0xffffffff
mov dword [ebp - 0x1fc], 0xffffffff
mov dword [ebp - 0x248], esi
mov dword [ebp - 0x30], eax
movups xmmword [ebp - 0x240], xmm0
movups xmmword [ebp - 0x218], xmm0
cmp esi, eax
je 0x10030be1
mov eax, dword [esi]
cmp byte [eax + 0x38], 0
lea ecx, [eax + 0x38]
movaps xmm0, xmmword [0x1010c6b0]
mov dword [ebp - 0x2c8], ecx
lea edi, [eax + 0x34]
jne 0x1002fa2d
cmp dword [edi], 2
jne 0x1002e4b8
cmp byte [0x1013b84c], 0
jne 0x1002fa2d
push eax
mov ecx, 0x1015c244
call fcn.100d0760
mov ecx, dword [esi]
mov dword [ecx + 0x30], eax
mov edx, dword [esi]
mov esi, dword [edx + 0x30]
lea edi, [edx + 0x30]
cmp esi, 3
je 0x1002fc63
mov eax, dword [edx + 0x18]
test eax, eax
je 0x1002fc63
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 2
cmp esi, 2
je 0x1002e932
cmp esi, 1
je 0x1002e932
xor edi, edi
mov dword [ebp - 0x2b4], 0xffffffff
mov byte [ebp - 0x281], 0
mov byte [ebp - 0x24e], 0
mov byte [ebp - 0x282], 0
mov dword [ebp - 0x2b8], 0xffffffff
mov byte [ebp - 0x24d], 0
test eax, eax
je 0x1002e597
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
add eax, edi
dec ecx
and ecx, eax
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x1002e589
mov ecx, esi
call fcn.1002bee0
test al, al
je 0x1002e589
xorps xmm0, xmm0
comiss xmm0, dword [esi + 4]
jb 0x1002e589
cmp byte [esi + 0x81], 0
je 0x1002e5ab
mov eax, dword [ebp - 0x248]
inc edi
mov edx, dword [eax]
cmp edi, dword [edx + 0x18]
jb 0x1002e557
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.10032430
jmp 0x1002fc63
test edi, edi
jle 0x1002e5b6
mov byte [0x10138254], 1
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1f8], esi
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov eax, dword [ebp - 0x248]
mov esi, dword [ebp - 0x1f8]
mov eax, dword [eax]
movss xmm2, dword [esi + 0x54]
push dword [eax]
call fcn.100e36b0
mov byte [ebp - 0x24f], al
mov eax, dword [esi + 0x84]
mov esi, dword [ebp - 0x248]
mov dword [ebp - 0x2bc], eax
mov ecx, dword [esi]
mov edi, dword [ecx + 0x18]
sub edi, 1
js 0x1002e924
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x254], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
add eax, edi
dec ecx
and ecx, eax
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x1cc], esi
test esi, esi
je 0x1002e8ed
mov ecx, dword [0x101c3470]
mov eax, dword [0x10137e2c]
add ecx, 0xffffffc1
xor ecx, 0x5910726e
push 1
movd xmm0, dword [ecx + eax]
mov eax, dword [0x101c3244]
mov ecx, dword [0x101c3250]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
mov eax, dword [ecx]
movss dword [ebp - 0x2c8], xmm0
movss xmm0, dword [0x10138190]
addss xmm0, dword [0x10138194]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x288], eax
movss dword [ebp - 0x30c], xmm0
call dword [ebp - 0x288]
mov ecx, dword [0x101c328c]
fstp dword [ebp - 0x34]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x288], eax
call dword [ebp - 0x288]
mov eax, dword [0x101c3244]
xorps xmm3, xmm3
movss xmm1, dword [esi + 0x18]
movss xmm0, dword [ebp - 0x34]
addss xmm0, dword [ebp - 0x30c]
movss xmm2, dword [eax + 0x20]
divss xmm1, xmm2
fstp dword [ebp - 0x288]
addss xmm1, dword [0x1010bd60]
minss xmm0, dword [ebp - 0x288]
cvttss2si eax, xmm1
maxss xmm0, xmm3
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
movss xmm2, dword [ebp - 0x2c8]
subss xmm2, xmm1
subss xmm0, xmm2
call fcn.1002b1c0
movss xmm1, dword [0x1010bd18]
comiss xmm1, xmm0
jbe 0x1002e8ed
comiss xmm3, dword [esi + 4]
jb 0x1002e8ed
cmp byte [esi + 0x81], 0
jne 0x1002e8ed
mov ecx, dword [ebp - 0x1f8]
movss xmm1, dword [ecx + 0x20]
movss xmm0, dword [ecx + 0x24]
subss xmm0, dword [esi + 0x24]
subss xmm1, dword [esi + 0x20]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002b1f0
cmp byte [ebp - 0x281], 0
jne 0x1002e7ac
comiss xmm0, dword [0x1010bd0c]
jbe 0x1002e79a
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov eax, dword [ebp - 0x20]
mov byte [ebp - 0x24e], 1
mov byte [ebp - 0x282], 1
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x2b4], edi
mov byte [ebp - 0x281], 1
jmp 0x1002e8ed
cmp byte [ebp - 0x24e], 0
je 0x1002e7e8
mov eax, dword [ebp - 0x2b4]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jge 0x1002e7e8
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov eax, dword [ebp - 0x20]
mov byte [ebp - 0x24e], 0
mov dword [ebp - 0x254], eax
jmp 0x1002e8ed
cmp byte [ebp - 0x282], 0
je 0x1002e87f
mov eax, dword [esi + 0x84]
cmp eax, dword [ecx + 0x84]
jb 0x1002e824
mov eax, dword [ebp - 0x248]
movss xmm2, dword [esi + 0x54]
mov eax, dword [eax]
push dword [eax]
call fcn.100e36b0
test al, al
je 0x1002e824
cmp byte [ebp - 0x24f], 0
je 0x1002e83e
cmp dword [ebp - 0x2bc], 4
ja 0x1002e8ed
cmp dword [esi + 0x84], 4
jbe 0x1002e8ed
mov eax, dword [ebp - 0x2b8]
cmp eax, 0xffffffff
je 0x1002e856
mov edx, dword [ebp - 0x254]
mov dword [edx + eax*4], 0
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
sub eax, ecx
sar eax, 2
dec eax
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x2b8], eax
jmp 0x1002e8ed
cmp dword [ebp - 0x2bc], 4
ja 0x1002ec17
cmp byte [ebp - 0x24d], 0
jne 0x1002e8e4
movss xmm0, dword [esi + 0x54]
subss xmm0, dword [ecx + 0x54]
lea ecx, [ebp - 0x34]
movss dword [ebp - 0x34], xmm0
call fcn.100d97e0
movss xmm0, dword [ebp - 0x34]
call fcn.1002b1c0
movss xmm1, dword [0x1010bd0c]
comiss xmm1, xmm0
jbe 0x1002e8e4
lea eax, [ebp - 0x1cc]
mov byte [ebp - 0x24d], 1
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x254], eax
jmp 0x1002e8ed
cmp dword [esi + 0x84], 4
ja 0x1002e907
sub edi, 1
mov esi, dword [ebp - 0x248]
jns 0x1002e614
mov edx, dword [ebp - 0x254]
jmp 0x1002ec23
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x254], edx
jmp 0x1002ec1d
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x254], edx
jmp 0x1002ec23
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
dec ecx
and ecx, dword [edx + 0x14]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x220], eax
test eax, eax
je 0x1002f619
comiss xmm0, dword [eax + 4]
jb 0x1002f619
cmp esi, 2
jne 0x1002ea0b
movaps xmm0, xmmword [0x1010cf00]
xor eax, eax
movaps xmm2, xmmword [0x1010c6b0]
movups xmmword [ebp - 0x1f4], xmm0
mov dword [ebp - 0x1d4], 0x3500603
movaps xmm0, xmmword [0x1010d0a0]
movups xmmword [ebp - 0x1e4], xmm0
mov word [ebp - 0x1d0], 0x235e
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x1f4]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x1f4], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002e9a0
cmp eax, 0x26
jae 0x1002e9d1
xor byte [ebp + eax - 0x1f4], 0x23
inc eax
cmp eax, 0x26
jb 0x1002e9c3
push edi
mov edi, dword [ebp - 0x248]
lea edx, [ebp - 0x1f4]
push edi
lea ecx, [ebp - 0x2a4]
call fcn.10033d10
add esp, 8
mov byte [ebp - 4], 7
or dword [ebp - 0x24c], 1
movaps xmm0, xmmword [0x1010c6b0]
movaps xmmword [ebp - 0x320], xmm0
jmp 0x1002eaca
mov edx, esi
lea ecx, [ebp - 0x78]
call fcn.1002b370
mov ecx, eax
mov dword [ebp - 4], 8
movaps xmm0, xmmword [0x1010d100]
mov esi, dword [ebp - 0x24c]
movups xmmword [ebp - 0x1f0], xmm0
or esi, 2
mov word [ebp - 0x1d0], 0x2350
movaps xmm0, xmmword [0x1010c290]
xor eax, eax
movups xmmword [ebp - 0x1e0], xmm0
mov dword [ebp - 0x24c], esi
movaps xmm0, xmmword [0x1010c6b0]
movaps xmmword [ebp - 0x320], xmm0
movaps xmm1, xmm0
movups xmm0, xmmword [ebp + eax - 0x1f0]
xorps xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x320]
movups xmmword [ebp + eax - 0x1f0], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002ea62
cmp eax, 0x22
jae 0x1002ea9e
nop dword [eax]
xor byte [ebp + eax - 0x1f0], 0x23
inc eax
cmp eax, 0x22
jb 0x1002ea90
mov edi, dword [ebp - 0x248]
lea edx, [ebp - 0x1f0]
push ecx
push edi
lea ecx, [ebp - 0x280]
call fcn.10033eb0
add esp, 8
or esi, 4
mov dword [ebp - 4], 9
mov dword [ebp - 0x24c], esi
mov esi, dword [ebp - 0x2c4]
push eax
lea ecx, [esi + 0x64a18]
call fcn.10032720
mov eax, dword [ebp - 0x24c]
test al, 4
je 0x1002eb00
and eax, 0xfffffffb
lea ecx, [ebp - 0x280]
mov dword [ebp - 0x24c], eax
call fcn.10032ff0
mov eax, dword [ebp - 0x24c]
test al, 2
je 0x1002eb1b
and eax, 0xfffffffd
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x24c], eax
call fcn.10032ff0
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 4], 2
test al, 1
je 0x1002eb3a
and eax, 0xfffffffe
lea ecx, [ebp - 0x2a4]
mov dword [ebp - 0x24c], eax
call fcn.10032ff0
mov edx, dword [edi]
lea ecx, [ebp - 0x280]
mov edx, dword [edx + 0x30]
call fcn.1002b370
mov edx, eax
mov byte [ebp - 4], 0xa
xor eax, eax
movaps xmm0, xmmword [0x1010c8e0]
movaps xmm1, xmmword [ebp - 0x320]
movups xmmword [ebp - 0x1f4], xmm0
mov word [ebp - 0x1d4], 0x5e03
movaps xmm0, xmmword [0x1010ce10]
movups xmmword [ebp - 0x1e4], xmm0
mov byte [ebp - 0x1d2], 0x23
movups xmm0, xmmword [ebp + eax - 0x1f4]
xorps xmm0, xmm1
movups xmmword [ebp + eax - 0x1f4], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x1002eb85
cmp eax, 0x23
jae 0x1002ebbe
nop word [eax + eax]
xor byte [ebp + eax - 0x1f4], 0x23
inc eax
cmp eax, 0x23
jb 0x1002ebb0
push edx
lea edx, [ebp - 0x1f4]
lea ecx, [ebp - 0x2a4]
call fcn.10033bd0
add esp, 4
push eax
lea ecx, [esi + 0x64a18]
mov byte [ebp - 4], 0xb
call fcn.10032720
lea ecx, [ebp - 0x2a4]
call fcn.10032ff0
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 2
call fcn.10032ff0
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x20]
call fcn.10032400
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x254], edx
jmp 0x1002ec1d
mov edx, dword [ebp - 0x254]
mov esi, dword [ebp - 0x248]
cmp edx, dword [ebp - 0x1c]
jne 0x1002ec85
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x1002fc63
mov eax, dword [ebp - 0x18]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002ec64
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003061b
push ecx
push edx
call fcn.100f842c
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
jmp 0x1002fc60
cmp byte [0x1013c48c], 0
je 0x1002ecab
mov eax, dword [esi]
mov byte [ebp - 0x24d], 1
movd xmm0, dword [eax + 0xb4]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x1013c5a0]
ja 0x1002ecb2
mov byte [ebp - 0x24d], 0
mov edi, dword [ebp - 0x1c]
mov al, byte [0x1013c514]
sub edi, edx
sar edi, 2
sub edi, 1
mov byte [ebp - 0x24f], al
mov dword [ebp - 0x2b4], edi
js 0x1002f5c3
mov edi, dword [edx + edi*4]
test edi, edi
je 0x1002f5ae
mov eax, dword [edi + 0x1bcc]
mov esi, dword [0x101c34e0]
add esi, 0xffffffa5
xor esi, 0x5910728a
add esi, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
push eax
lea eax, [edi + 0x3cc]
push eax
push dword [esi]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 0x1bcc]
add esp, 0xc
mov dword [esi + 0xc], eax
lea esi, [edi + 0x20]
mov ecx, dword [0x101c3408]
mov eax, dword [esi]
add ecx, 0xffffffdb
xor ecx, 0x59107254
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov ecx, dword [0x101c3414]
mov eax, dword [edi + 0x38]
add ecx, 0xffffffd8
xor ecx, 0x59107257
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [edi + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x40]
mov dword [ecx + 8], eax
mov ecx, dword [0x101c3418]
mov eax, dword [edi + 0x44]
add ecx, 0xffffffd7
xor ecx, 0x59107258
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [edi + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x4c]
mov dword [ecx + 8], eax
lea eax, [edi + 0x6c]
mov edx, dword [0x101c32fc]
mov ecx, dword [edi]
push eax
call edx
mov eax, dword [0x101c3300]
mov ecx, dword [edi]
push esi
call eax
mov eax, dword [ebp - 0x248]
xorps xmm0, xmm0
mov ecx, dword [0x101c3454]
add ecx, 0xffffffc8
xor ecx, 0x59107267
mov esi, dword [eax]
mov eax, dword [esi]
movd xmm1, dword [ecx + eax]
cvtdq2ps xmm1, xmm1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x24], 0
movq qword [ebp - 0x2c], xmm0
movss dword [ebp - 0x1cc], xmm1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
cmp byte [ebp - 0x24d], 0
mov byte [ebp - 4], 0xc
je 0x1002ee0c
cmp dword [edi + 0x84], 4
jbe 0x1002ee03
cmp byte [ebp - 0x24f], 0
jne 0x1002ee0c
mov byte [ebp - 0x2d0], 1
jmp 0x1002ee13
mov byte [ebp - 0x2d0], 0
mov ecx, 0x1015c260
call fcn.1002d2e0
lea eax, [ebp - 0x2c]
movaps xmm3, xmm0
push eax
push dword [ebp - 0x2d0]
lea eax, [edi + 0x3cc]
mov ecx, esi
push eax
push edi
call fcn.100315f0
movss xmm1, dword [0x1010c010]
xor esi, esi
cmp dword [edi + 0x84], 4
movss dword [ebp - 0x34], xmm1
mov dword [ebp - 0x288], 0xffffffff
mov dword [ebp - 0x1f8], esi
ja 0x1002ee8f
mov eax, dword [ebp - 0x248]
mov eax, dword [eax]
cmp dword [eax + 0xc4], esi
jle 0x1002ee8f
push esi
push dword [0x1013c688]
push dword [0x1013c684]
call fcn.100f7d20
mov ecx, dword [0x1013c688]
cmp eax, ecx
jne 0x1002eed8
jmp 0x1002ee95
mov ecx, dword [0x1013c688]
test byte [edi + 0x1c], 1
jne 0x1002eeb3
push 1
push ecx
push dword [0x1013c684]
call fcn.100f7d20
mov ecx, dword [0x1013c688]
cmp eax, ecx
jne 0x1002eed8
cmp dword [edi + 0x84], 6
jne 0x1002eedf
cmp dword [edi + 0xc], 2
jge 0x1002eedf
push 2
push ecx
push dword [0x1013c684]
call fcn.100f7d20
cmp eax, dword [0x1013c688]
je 0x1002eedf
mov esi, 1
jmp 0x1002ef4f
cmp dword [edi + 0x84], 5
jne 0x1002ef07
push 0
push dword [0x1013c730]
push dword [0x1013c72c]
call fcn.100f7d20
mov ecx, dword [0x1013c730]
cmp eax, ecx
jne 0x1002ef4a
jmp 0x1002ef0d
mov ecx, dword [0x1013c730]
cmp dword [edi + 0x84], 6
jne 0x1002ef2e
push 1
push ecx
push dword [0x1013c72c]
call fcn.100f7d20
mov ecx, dword [0x1013c730]
cmp eax, ecx
jne 0x1002ef4a
cmp dword [edi + 0xc], 2
jge 0x1002ef55
push 2
push ecx
push dword [0x1013c72c]
call fcn.100f7d20
cmp eax, dword [0x1013c730]
je 0x1002ef55
mov esi, 2
mov dword [ebp - 0x1f8], esi
cmp dword [ebp - 0x2b4], 0
jne 0x1002ef6c
mov eax, dword [ebp - 0x248]
mov eax, dword [eax]
mov dword [eax + 0xdc], esi
mov esi, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x2bc], ecx
mov eax, 0x92492493
mov ecx, dword [ebp - 0x28]
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1002f14e
movss xmm4, dword [ebp - 0x1cc]
xor eax, eax
mov dword [ebp - 0x2b8], eax
nop word [eax + eax]
movups xmm2, xmmword [eax + esi]
mov ecx, 0x1015c260
movq xmm0, qword [eax + esi + 0x10]
movaps xmm1, xmm4
mov eax, dword [eax + esi + 0x18]
movups xmmword [ebp - 0x320], xmm2
mov dword [ebp - 0x290], eax
movups xmmword [ebp - 0x2a8], xmm2
movq qword [ebp - 0x298], xmm0
call fcn.1002d2e0
mov al, byte [0x1013b9e4]
lea edx, [ebp - 0x50]
movss dword [ebp - 0x1dc], xmm0
lea ecx, [ebp - 0x1f0]
movaps xmm0, xmm2
mov byte [ebp - 0x1d4], al
mov eax, dword [edi]
shufps xmm0, xmm2, 0x55
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x1ec], eax
movss dword [ebp - 0x1e4], xmm0
movaps xmm0, xmm2
mov eax, dword [0x10137e2c]
shufps xmm0, xmm2, 0xaa
mov dword [ebp - 0x1f0], eax
movss dword [ebp - 0x1e8], xmm2
movups xmmword [ebp - 0x280], xmm0
mov dword [ebp - 0x50], 0
movss dword [ebp - 0x1e0], xmm0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xffffffff
mov byte [ebp - 0x44], 0
call fcn.100de3b0
test al, al
je 0x1002f10c
mov eax, dword [0x101c3244]
mov byte [0x101c0cb1], 1
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x248]
add ecx, 0x20
mov eax, dword [eax]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x29c]
cmp ecx, dword [ebp - 0x288]
jne 0x1002f3f7
movss xmm1, dword [ebp - 0x294]
comiss xmm1, dword [ebp - 0x208]
jbe 0x1002f10c
mov eax, dword [edi]
movss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x20c], xmm0
movups xmm0, xmmword [ebp - 0x320]
push ecx
mov dword [ebp - 0x21c], eax
movss dword [ebp - 0x218], xmm0
movups xmm0, xmmword [ebp - 0x70]
mov dword [ebp - 0x204], edi
mov dword [ebp - 0x200], ecx
movss dword [ebp - 0x214], xmm0
movups xmm0, xmmword [ebp - 0x280]
movss dword [ebp - 0x210], xmm0
call fcn.1002bfc0
mov dword [ebp - 0x1fc], eax
movss dword [ebp - 0x208], xmm1
movss xmm4, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x28]
mov eax, 0x92492493
mov esi, dword [ebp - 0x2c]
sub ecx, esi
inc dword [ebp - 0x2bc]
add dword [ebp - 0x2b8], 0x1c
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x2bc], eax
mov eax, dword [ebp - 0x2b8]
jb 0x1002efb0
movss xmm0, dword [ebp - 0x20c]
comiss xmm0, dword [0x1010bc90]
jbe 0x1002f53f
push 0
push dword [0x1013c414]
push dword [0x1013c410]
call fcn.100f7d20
movss xmm0, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x200]
movss dword [ebp - 0x288], xmm0
cmp eax, dword [0x1013c414]
je 0x1002fcc2
mov eax, dword [ebp - 0x248]
movss xmm2, dword [ebp - 0x1cc]
mov edi, dword [eax]
add edi, 0x24
movd xmm1, dword [edi]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jb 0x1002f1c0
comiss xmm2, xmm0
ja 0x1002f1d1
test ecx, ecx
je 0x1002f1d1
mulss xmm0, dword [0x1010bde8]
comiss xmm1, xmm0
jbe 0x1002fcc2
movaps xmm0, xmmword [0x1010cd80]
xor eax, eax
mov esi, dword [ebp - 0x2c4]
movups xmmword [ebp - 0x1f4], xmm0
mov dword [ebp - 0x1d4], 0x5e035006
movaps xmm0, xmmword [str.BZFG]
movups xmmword [ebp - 0x1e4], xmm0
mov byte [ebp - 0x1d0], 0x23
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x1f4]
movaps xmm1, xmmword [0x1010c6b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x1f4], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002f210
cmp eax, 0x25
jae 0x1002f24e
nop word [eax + eax]
xor byte [ebp + eax - 0x1f4], 0x23
inc eax
cmp eax, 0x25
jb 0x1002f240
push 0x98
lea eax, [ebp - 0x1c8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x1c8]
call fcn.10032f10
lea eax, [ebp - 0x2a4]
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x2ac], eax
mov ecx, 2
mov dword [ebp - 0x2a8], 2
lea eax, [ebp - 0x29c]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x1002f294
push dword [ebp - 0x2a8]
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x304], 0x100357b0
push dword [ebp - 0x2ac]
mov dword [ebp - 0x308], eax
lea edx, [ebp - 0x1f4]
movq xmm0, qword [ebp - 0x308]
lea ecx, [ebp - 0x1c8]
movq qword [ebp - 0x2a4], xmm0
mov dword [ebp - 0x2fc], edi
mov dword [ebp - 0x2f8], 0x10035710
movq xmm0, qword [ebp - 0x2fc]
mov dword [ebp - 0x29c], 0x100357d0
movq qword [ebp - 0x298], xmm0
mov dword [ebp - 0x290], 0x10035730
call fcn.1002bab0
add esp, 8
lea eax, [ebp - 0x280]
lea ecx, [ebp - 0x1c4]
push eax
call fcn.10033370
or dword [ebp - 0x24c], 0x60
mov eax, dword [ebp - 0x1c8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x1c8], 0x10106a0c
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x1cc], eax
lea ecx, [ebp - 0x1c4]
call fcn.10032e60
lea ecx, [ebp - 0x1c0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x178]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 0xe
mov eax, dword [esi + 0x64a1c]
cmp eax, dword [esi + 0x64a20]
je 0x1002f4e3
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x280]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
mov eax, 0xf
add dword [esi + 0x64a1c], 0x18
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], eax
mov byte [ebp - 0x280], 0
jmp 0x1002f4fc
mov eax, dword [ebp - 0x1f8]
movss xmm2, dword [0x1013bd08]
sub eax, 1
je 0x1002f419
sub eax, 1
jne 0x1002f421
movss xmm2, dword [0x1010c02c]
jmp 0x1002f421
movss xmm2, dword [0x1010bf5c]
movss xmm3, dword [ebp - 0x4c]
movaps xmm1, xmm2
movss xmm4, dword [ebp - 0x1cc]
movaps xmm0, xmm3
xorps xmm1, xmmword [0x1010d2f0]
minss xmm0, xmm4
maxss xmm1, dword [0x1010bdb0]
maxss xmm2, dword [0x1010bdb0]
divss xmm0, xmm4
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0x298]
mulss xmm1, xmm2
addss xmm1, xmm0
comiss xmm1, dword [ebp - 0x34]
jbe 0x1002f114
mov eax, dword [edi]
movups xmm0, xmmword [ebp - 0x320]
push ecx
mov dword [ebp - 0x21c], eax
movss dword [ebp - 0x218], xmm0
movups xmm0, xmmword [ebp - 0x70]
mov dword [ebp - 0x204], edi
movss dword [ebp - 0x20c], xmm3
movss dword [ebp - 0x214], xmm0
movups xmm0, xmmword [ebp - 0x280]
mov dword [ebp - 0x200], ecx
movss dword [ebp - 0x210], xmm0
call fcn.1002bfc0
movss xmm0, dword [ebp - 0x294]
mov dword [ebp - 0x1fc], eax
movss dword [ebp - 0x208], xmm0
movss dword [ebp - 0x34], xmm1
mov dword [ebp - 0x288], ecx
jmp 0x1002f114
lea ecx, [ebp - 0x280]
push ecx
push eax
lea ecx, [esi + 0x64a18]
call fcn.10034c20
mov eax, dword [ebp - 0x26c]
mov byte [ebp - 4], 0xc
cmp eax, 0xf
jbe 0x1002f536
mov edx, dword [ebp - 0x280]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002f52c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x2c]
jmp 0x1002f543
mov byte [ebp - 4], 2
test esi, esi
je 0x1002f5a8
mov ecx, dword [ebp - 0x24]
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1002f589
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push esi
call fcn.100f842c
mov dword [ebp - 0x24], 0
add esp, 8
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x254]
mov edi, dword [ebp - 0x2b4]
sub edi, 1
mov dword [ebp - 0x2b4], edi
jns 0x1002ecd4
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x1002fc63
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1002f5f8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003061b
push ecx
push edx
call fcn.100f842c
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
jmp 0x1002fc60
movss xmm0, dword [eax + 4]
comiss xmm0, dword [0x1010bc90]
mov edi, dword [ebp - 0x2c4]
mov word [ebp - 0x1d0], 0x235e
movaps xmm0, xmmword [0x1010cc10]
movups xmmword [ebp - 0x1f0], xmm0
movaps xmm0, xmmword [0x1010c1f0]
seta byte [ebp - 0x2ad]
movups xmmword [ebp - 0x1e0], xmm0
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x1f0]
movaps xmm1, xmmword [0x1010c6b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x1f0], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002f660
cmp eax, 0x22
jae 0x1002f69e
nop word [eax + eax]
xor byte [ebp + eax - 0x1f0], 0x23
inc eax
cmp eax, 0x22
jb 0x1002f690
push 0x98
lea eax, [ebp - 0x1c8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x1c8]
call fcn.10032f10
lea eax, [ebp - 0x2a4]
mov byte [ebp - 4], 3
mov dword [ebp - 0x2ac], eax
mov ecx, 2
mov dword [ebp - 0x2a8], 2
lea eax, [ebp - 0x29c]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x1002f6e4
push dword [ebp - 0x2a8]
lea eax, [ebp - 0x220]
mov dword [ebp - 0x2ec], 0x10035770
push dword [ebp - 0x2ac]
mov dword [ebp - 0x2f0], eax
lea edx, [ebp - 0x1f0]
movq xmm0, qword [ebp - 0x2f0]
lea eax, [ebp - 0x2ad]
movq qword [ebp - 0x2a4], xmm0
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2e0], 0x10035740
movq xmm0, qword [ebp - 0x2e4]
mov dword [ebp - 0x29c], fcn.1002bea0
movq qword [ebp - 0x298], xmm0
mov dword [ebp - 0x290], 0x10035760
call fcn.1002bab0
add esp, 8
lea eax, [ebp - 0x280]
lea ecx, [ebp - 0x1c4]
push eax
call fcn.10033370
or dword [ebp - 0x24c], 0x180
mov eax, dword [ebp - 0x1c8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x1c8], 0x10106a0c
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x1cc], eax
lea ecx, [ebp - 0x1c4]
call fcn.10032e60
lea ecx, [ebp - 0x1c0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x178]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 4
mov eax, dword [edi + 0x64a1c]
cmp eax, dword [edi + 0x64a20]
je 0x1002f849
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x280]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
mov eax, 0xf
add dword [edi + 0x64a1c], 0x18
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], eax
mov byte [ebp - 0x280], 0
jmp 0x1002f862
lea ecx, [ebp - 0x280]
push ecx
push eax
lea ecx, [edi + 0x64a18]
call fcn.10034c20
mov eax, dword [ebp - 0x26c]
mov byte [ebp - 4], 2
cmp eax, 0xf
jbe 0x1002f89c
mov edx, dword [ebp - 0x280]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002f892
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
mov eax, dword [ebp - 0x248]
lea ecx, [ebp - 0x78]
mov edx, dword [eax]
mov edx, dword [edx + 0x30]
call fcn.1002b370
mov ecx, eax
mov byte [ebp - 4], 5
xor eax, eax
movaps xmm0, xmmword [0x1010c970]
movups xmmword [ebp - 0x1f0], xmm0
mov word [ebp - 0x1d0], 0x235e
movaps xmm0, xmmword [0x1010c1e0]
movups xmmword [ebp - 0x1e0], xmm0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0x1f0]
movaps xmm1, xmmword [0x1010c6b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x1f0], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002f8e0
cmp eax, 0x22
jae 0x1002f91e
nop word [eax + eax]
xor byte [ebp + eax - 0x1f0], 0x23
inc eax
cmp eax, 0x22
jb 0x1002f910
push ecx
lea edx, [ebp - 0x1f0]
lea ecx, [ebp - 0x280]
call fcn.10033bd0
add esp, 4
mov byte [ebp - 4], 6
mov ecx, dword [edi + 0x64a1c]
cmp ecx, dword [edi + 0x64a20]
je 0x1002f983
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
add dword [edi + 0x64a1c], 0x18
jmp 0x1002f990
push eax
push ecx
lea ecx, [edi + 0x64a18]
call fcn.10034c20
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0xf
jbe 0x1002f9ce
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002f9c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
cmp ecx, 0xf
jbe 0x1002fa21
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002fa17
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
mov dword [ebp - 4], 0xffffffff
jmp 0x1002fc63
xorps xmm0, xmmword [0x1010ce40]
mov eax, 0x10
mov esi, dword [ebp - 0x2c4]
mov dword [ebp - 0x294], 0x3035e03
mov dword [ebp - 0x290], 0x50060358
mov word [ebp - 0x28c], 0x5e03
mov byte [ebp - 0x28a], 0x23
movups xmmword [ebp - 0x2a4], xmm0
nop word [eax + eax]
xor byte [ebp + eax - 0x2a4], 0x23
inc eax
cmp eax, 0x1b
jb 0x1002fa70
push 0x98
lea eax, [ebp - 0x130]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x130]
call fcn.10032f10
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0
mov dword [ebp - 0x80], eax
mov ecx, 2
mov dword [ebp - 0x7c], 2
lea eax, [ebp - 0x70]
nop dword [eax + eax]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x1002fac0
mov eax, dword [ebp - 0x2c8]
lea edx, [ebp - 0x2a4]
push dword [ebp - 0x7c]
mov dword [ebp - 0x32c], eax
lea ecx, [ebp - 0x130]
push dword [ebp - 0x80]
mov dword [ebp - 0x328], 0x10035740
movq xmm0, qword [ebp - 0x32c]
movq qword [ebp - 0x78], xmm0
mov dword [ebp - 0x338], edi
mov dword [ebp - 0x334], 0x10035710
movq xmm0, qword [ebp - 0x338]
mov dword [ebp - 0x70], 0x10035760
movq qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x64], 0x10035730
call fcn.1002bab0
add esp, 8
lea eax, [ebp - 0x280]
lea ecx, [ebp - 0x12c]
push eax
call fcn.10033370
or dword [ebp - 0x24c], 0x18
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x130], 0x10106a0c
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x134], eax
lea ecx, [ebp - 0x12c]
call fcn.10032e60
lea ecx, [ebp - 0x128]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xe0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov dword [ebp - 4], 1
mov eax, dword [esi + 0x64a1c]
cmp eax, dword [esi + 0x64a20]
je 0x1002fc0d
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x280]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
mov eax, 0xf
add dword [esi + 0x64a1c], 0x18
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], eax
mov byte [ebp - 0x280], 0
jmp 0x1002fc26
lea ecx, [ebp - 0x280]
push ecx
push eax
lea ecx, [esi + 0x64a18]
call fcn.10034c20
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xf
jbe 0x1002fc63
mov edx, dword [ebp - 0x280]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002fc59
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
mov esi, dword [ebp - 0x248]
add esi, 4
mov dword [ebp - 0x248], esi
cmp esi, dword [ebp - 0x30]
jne 0x1002e487
movss xmm0, dword [ebp - 0x234]
xor edi, edi
movss xmm2, dword [ebp - 0x238]
movss xmm4, dword [ebp - 0x23c]
movss xmm1, dword [ebp - 0x240]
movss dword [ebp - 0x288], xmm0
movss dword [ebp - 0x248], xmm2
movss dword [ebp - 0x1cc], xmm4
movss dword [ebp - 0x24c], xmm1
jmp 0x1002fdd3
movss xmm0, dword [ebp - 0x218]
mov eax, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x204]
movss dword [ebp - 0x24c], xmm0
movss xmm0, dword [ebp - 0x214]
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x1fc]
movss dword [ebp - 0x1cc], xmm0
movss xmm0, dword [ebp - 0x210]
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x2c]
movss dword [ebp - 0x248], xmm0
mov dword [ebp - 0x2d8], edi
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x2cc], eax
test esi, esi
je 0x1002fd73
mov ecx, dword [ebp - 0x24]
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1002fd69
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push esi
call fcn.100f842c
add esp, 8
mov edx, dword [ebp - 0x254]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x1002fdbb
mov eax, dword [ebp - 0x18]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002fdb1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003061b
push ecx
push edx
call fcn.100f842c
add esp, 8
movss xmm2, dword [ebp - 0x248]
movss xmm4, dword [ebp - 0x1cc]
movss xmm1, dword [ebp - 0x24c]
mov esi, dword [ebp - 0x2c0]
test esi, esi
je 0x10030be1
test edi, edi
je 0x10030be1
subss xmm4, dword [0x10137e3c]
movq xmm0, qword [0x10137e38]
movaps xmm3, xmm1
subss xmm3, dword [0x10137e38]
mov eax, dword [0x10137e40]
subss xmm2, dword [0x10137e40]
movq qword [ebp - 0x2c], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
mov dword [ebp - 0x24], eax
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm0, xmm1
call fcn.1002b1f0
movss xmm5, dword [0x1010bf34]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1002fe6a
xorps xmm2, xmmword [0x1010d2f0]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.10036220
movaps xmm2, xmm0
movaps xmm1, xmm3
movaps xmm0, xmm4
mulss xmm2, xmm5
call fcn.10036220
mulss xmm0, xmm5
jmp 0x1002fe84
comiss xmm2, xmm1
jbe 0x1002fe79
movss xmm2, dword [0x1010c028]
jmp 0x1002fe81
movss xmm2, dword [0x1010bf54]
xorps xmm0, xmm0
mov edi, dword [ebp - 0x2c4]
movaps xmm1, xmm2
movss dword [edi + 0x64a28], xmm2
movss dword [edi + 0x64a2c], xmm0
mov dword [edi + 0x64a30], 0
call fcn.1002c420
movss xmm6, dword [ebp - 0x1cc]
movss xmm5, dword [ebp - 0x24c]
movaps xmm3, xmm6
subss xmm3, dword [0x10137e3c]
movss xmm7, dword [ebp - 0x248]
movaps xmm4, xmm5
subss xmm4, dword [0x10137e38]
movaps xmm2, xmm7
subss xmm2, dword [0x10137e40]
movaps xmm1, xmm3
mulss xmm1, xmm3
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm0, xmm1
call fcn.1002b1f0
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1002ff36
xorps xmm2, xmmword [0x1010d2f0]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.10036220
movaps xmm2, xmm0
movaps xmm1, xmm4
mulss xmm2, dword [0x1010bf34]
movaps xmm0, xmm3
call fcn.10036220
mulss xmm0, dword [0x1010bf34]
jmp 0x1002ff50
comiss xmm2, xmm1
jbe 0x1002ff45
movss xmm2, dword [0x1010c028]
jmp 0x1002ff4d
movss xmm2, dword [0x1010bf54]
xorps xmm0, xmm0
movss dword [edi + 0x64a2c], xmm0
movss dword [edi + 0x64a28], xmm2
mov dword [edi + 0x64a30], 0
movss xmm2, dword [0x10137e38]
movss xmm0, dword [0x10137e3c]
subss xmm0, dword [ebp - 0x28]
subss xmm2, dword [ebp - 0x2c]
movss xmm1, dword [0x10137e40]
subss xmm1, dword [ebp - 0x24]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.1002b1f0
comiss xmm0, dword [0x1010bd0c]
jbe 0x100302b1
mov eax, dword [0x101c3454]
mov ecx, edi
add eax, 0xffffffc8
xor eax, 0x59107267
movd xmm1, dword [eax + esi]
cvtdq2ps xmm1, xmm1
call fcn.1002d2e0
mov al, byte [0x1013b9e4]
lea edx, [ebp - 0x50]
mov byte [ebp - 0x1d4], al
lea ecx, [ebp - 0x1f0]
mov eax, dword [0x10137e2c]
mov dword [ebp - 0x1ec], esi
lea esi, [edi + 0x64a18]
movss dword [ebp - 0x1dc], xmm0
mov dword [ebp - 0x1f0], eax
movss dword [ebp - 0x1e8], xmm5
movss dword [ebp - 0x1e4], xmm6
movss dword [ebp - 0x1e0], xmm7
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xffffffff
mov byte [ebp - 0x44], 0
call fcn.100de3b0
movaps xmm0, xmmword [0x1010d230]
movups xmmword [ebp - 0x2ac], xmm0
test al, al
jne 0x1003017b
movaps xmm0, xmmword [0x1010c1b0]
xor eax, eax
movups xmmword [ebp - 0x29c], xmm0
mov word [ebp - 0x28c], 0x237e
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x2ac]
movaps xmm1, xmmword [0x1010c6b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x2ac], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10030070
cmp eax, 0x22
jae 0x100300ae
nop word [eax + eax]
xor byte [ebp + eax - 0x2ac], 0x23
inc eax
cmp eax, 0x22
jb 0x100300a0
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
lea ecx, [ebp - 0x2ac]
mov dword [ebp - 0x26c], 0
movups xmmword [ebp - 0x280], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100300d5
sub ecx, edx
lea eax, [ebp - 0x2ac]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.10034070
mov dword [ebp - 4], 0xf
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x10030129
movups xmm0, xmmword [ebp - 0x280]
mov ecx, 0xf
mov byte [ebp - 0x280], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
add dword [esi + 4], 0x18
jmp 0x1003013e
lea ecx, [ebp - 0x280]
push ecx
push eax
mov ecx, esi
call fcn.10034c20
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0xf
jbe 0x10030be1
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003016c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003029b
push ecx
push edx
call fcn.100f842c
add esp, 8
jmp 0x10030be1
movaps xmm0, xmmword [0x1010d000]
xor eax, eax
movups xmmword [ebp - 0x29c], xmm0
mov word [ebp - 0x28c], 0x7e03
mov byte [ebp - 0x28a], 0x23
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x2ac]
movaps xmm1, xmmword [0x1010c6b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x2ac], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100301a0
cmp eax, 0x23
jae 0x100301de
nop word [eax + eax]
xor byte [ebp + eax - 0x2ac], 0x23
inc eax
cmp eax, 0x23
jb 0x100301d0
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
lea ecx, [ebp - 0x2ac]
mov dword [ebp - 0x26c], 0
movups xmmword [ebp - 0x280], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10030205
sub ecx, edx
lea eax, [ebp - 0x2ac]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.10034070
mov dword [ebp - 4], 0x10
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x10030259
movups xmm0, xmmword [ebp - 0x280]
mov ecx, 0xf
mov byte [ebp - 0x280], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
add dword [esi + 4], 0x18
jmp 0x1003026e
lea ecx, [ebp - 0x280]
push ecx
push eax
mov ecx, esi
call fcn.10034c20
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x100302ab
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100302a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100302a1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100f842c
add esp, 8
mov esi, dword [ebp - 0x2c0]
movss xmm3, dword [ebp - 0x24c]
movss xmm4, dword [ebp - 0x1cc]
subss xmm3, dword [0x10137e38]
subss xmm4, dword [0x10137e3c]
movss xmm2, dword [ebp - 0x248]
subss xmm2, dword [0x10137e40]
movaps xmm1, xmm3
movaps xmm0, xmm4
mulss xmm1, xmm3
mulss xmm0, xmm4
addss xmm0, xmm1
call fcn.1002b1f0
xorps xmm5, xmm5
comiss xmm0, xmm5
jbe 0x10030335
xorps xmm2, xmmword [0x1010d2f0]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.10036220
movaps xmm2, xmm0
movaps xmm1, xmm3
mulss xmm2, dword [0x1010bf34]
movaps xmm0, xmm4
call fcn.10036220
mulss xmm0, dword [0x1010bf34]
xorps xmm5, xmm5
jmp 0x1003034f
comiss xmm2, xmm5
jbe 0x10030344
movss xmm2, dword [0x1010c028]
jmp 0x1003034c
movss xmm2, dword [0x1010bf54]
xorps xmm0, xmm0
cmp byte [0x10138164], 0
movss dword [ebp - 0x8c], xmm2
movss dword [ebp - 0x88], xmm0
mov dword [ebp - 0x84], 0
je 0x100303e1
cmp byte [0x10137e44], 0
je 0x100303e1
test byte [0x10137e34], 1
je 0x100303c8
mov ecx, dword [0x101c3478]
mov eax, dword [0x10137e2c]
add ecx, 0xffffffbf
xor ecx, 0x59107270
movss xmm1, dword [ecx + eax]
comiss xmm1, xmm5
jbe 0x100303af
movss xmm0, dword [0x1010bdb0]
comiss xmm0, xmm1
ja 0x100303c0
movss xmm0, dword [0x10138150]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100303c8
lea esi, [edi + 0x64a18]
jmp 0x100303f1
lea eax, [ebp - 0x8c]
mov ecx, 0x1015c260
push eax
push esi
call fcn.10030c10
test eax, eax
setne al
jmp 0x100303e3
xor al, al
lea esi, [edi + 0x64a18]
test al, al
jne 0x1003050b
movaps xmm0, xmmword [0x1010c6b0]
mov eax, 0x10
xorps xmm0, xmmword [0x1010cff0]
mov dword [ebp - 0x298], 0x319574f
mov dword [ebp - 0x294], 0x4f4a4245
mov dword [ebp - 0x290], 0x7e034746
mov byte [ebp - 0x28c], 0x23
movups xmmword [ebp - 0x2a8], xmm0
xor byte [ebp + eax - 0x2a8], 0x23
inc eax
cmp eax, 0x1d
jb 0x10030430
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 0x26c], 0
movups xmmword [ebp - 0x280], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10030465
sub ecx, edx
lea eax, [ebp - 0x2a8]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.10034070
mov dword [ebp - 4], 0x11
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x100304b9
movups xmm0, xmmword [ebp - 0x280]
mov ecx, 0xf
mov byte [ebp - 0x280], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
add dword [esi + 4], 0x18
jmp 0x100304ce
lea ecx, [ebp - 0x280]
push ecx
push eax
mov ecx, esi
call fcn.10034c20
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0xf
jbe 0x10030be1
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100304fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003061b
push ecx
push edx
call fcn.100f842c
add esp, 8
jmp 0x10030be1
movaps xmm0, xmmword [0x1010c6b0]
mov eax, 0x10
xorps xmm0, xmmword [0x1010cff0]
mov dword [ebp - 0x298], 0x319574f
mov dword [ebp - 0x294], 0x51514c40
mov dword [ebp - 0x290], 0x3574046
mov word [ebp - 0x28c], 0x237e
movups xmmword [ebp - 0x2a8], xmm0
nop dword [eax]
xor byte [ebp + eax - 0x2a8], 0x23
inc eax
cmp eax, 0x1e
jb 0x10030550
xorps xmm0, xmm0
mov dword [ebp - 0x270], 0
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 0x26c], 0
movups xmmword [ebp - 0x280], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10030585
sub ecx, edx
lea eax, [ebp - 0x2a8]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.10034070
mov dword [ebp - 4], 0x12
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x100305d9
movups xmm0, xmmword [ebp - 0x280]
mov ecx, 0xf
mov byte [ebp - 0x280], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x270]
movq qword [eax + 0x10], xmm0
add dword [esi + 4], 0x18
jmp 0x100305ee
lea ecx, [ebp - 0x280]
push ecx
push eax
mov ecx, esi
call fcn.10034c20
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1003062b
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030621
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10030621
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100f842c
add esp, 8
mov eax, dword [ebp - 0x2c0]
movss xmm0, dword [ebp - 0x24c]
mov dword [edi + 0x64a24], eax
mov eax, dword [ebp - 0x2d8]
movss dword [edi + 0x64a34], xmm0
movss xmm0, dword [ebp - 0x1cc]
movss dword [edi + 0x64a38], xmm0
movss xmm0, dword [ebp - 0x248]
movss dword [edi + 0x64a3c], xmm0
movss xmm0, dword [ebp - 0x288]
mov dword [edi + 0x64a44], eax
mov eax, dword [ebp - 0x2d4]
mov dword [edi + 0x64a48], eax
mov eax, dword [ebp - 0x2cc]
movss dword [edi + 0x64a40], xmm0
mov dword [edi + 0x64a4c], eax
cmp dword [0x1013817c], 0
jne 0x100306bf
mov eax, dword [0x10138184]
mov byte [eax], 0
mov eax, dword [0x101381ac]
and dword [eax + 0x30], 0xfffffffe
call fcn.100cf8d0
jmp 0x10030be1
cmp byte [0x1013b8d4], 0
jne 0x100306dc
mov ecx, dword [0x101c31e4]
lea eax, [edi + 0x64a28]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [0x101c32d0]
mov esi, dword [0x101c34bc]
add esi, 0xffffffae
xor esi, 0x59107281
mov eax, dword [ecx]
add esi, dword [0x10137e2c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x30], eax
call dword [ebp - 0x30]
movss xmm2, dword [esi + 4]
movss xmm4, dword [edi + 0x64a28]
movss xmm3, dword [esi + 8]
fstp dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x30]
movaps xmm0, xmm1
mulss xmm2, xmm1
mulss xmm0, dword [esi]
mulss xmm3, xmm1
subss xmm4, xmm0
movss xmm0, dword [edi + 0x64a2c]
subss xmm0, xmm2
movss dword [edi + 0x64a28], xmm4
movss dword [edi + 0x64a2c], xmm0
movss xmm0, dword [edi + 0x64a30]
subss xmm0, xmm3
movss dword [edi + 0x64a30], xmm0
mov eax, dword [0x101381ac]
movss dword [0x10138214], xmm4
movss xmm0, dword [edi + 0x64a2c]
movss dword [0x10138218], xmm0
movss xmm0, dword [edi + 0x64a30]
movss dword [0x1013821c], xmm0
movss dword [eax + 0xc], xmm4
movss xmm0, dword [0x10138218]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [0x1013821c]
movss dword [eax + 0x14], xmm0
cmp byte [0x1013b95c], 0
je 0x100307bd
mov eax, dword [0x101381ac]
or dword [eax + 0x30], 1
mov eax, dword [0x101381ac]
test byte [eax + 0x30], 1
je 0x10030be1
mov eax, dword [0x10138184]
mov byte [eax], 0
mov eax, dword [edi + 0x64a44]
movss xmm0, dword [eax + 0x18]
addss xmm0, dword [0x10138190]
mov eax, dword [0x101c3244]
divss xmm0, dword [eax + 0x20]
mov eax, dword [0x101381ac]
addss xmm0, dword [0x1010bd60]
cvttss2si ecx, xmm0
mov dword [eax + 8], ecx
mov eax, dword [0x1013815c]
mov byte [0x10137e45], 1
mov byte [0x1014d8e8], 1
mov ecx, dword [edi + 0x64a24]
mov eax, dword [eax + 0xf4]
test ecx, ecx
je 0x10030838
movss xmm0, dword [edi + 0x64a40]
mov edx, dword [edi + 0x64a44]
jmp 0x10030844
movss xmm0, dword [0x1010c00c]
xor ecx, ecx
xor edx, edx
push dword [edi + 0x64a48]
movaps xmm2, xmm0
push edx
push eax
push ecx
call fcn.100d2480
push dword [0x1013bbe4]
lea edx, [ebp - 0x30]
mov dword [ebp - 0x30], 0
push dword [0x1013bbe0]
lea ecx, [ebp - 0x2c8]
call fcn.100338e0
add esp, 8
mov eax, dword [eax]
cmp eax, dword [0x1013bbe4]
je 0x100308c5
mov ecx, dword [edi + 0x64a44]
sub esp, 8
lea eax, [ecx + 0x3cc]
push eax
push ecx
call fcn.100f4c70
mov ecx, dword [edi + 0x64a24]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x1840
sub esp, 8
add eax, 0x21d8
add eax, edi
push eax
push dword [edi + 0x64a44]
call fcn.100f4c70
cmp byte [0x1014be84], 0
je 0x10030be1
push 0x54
lea eax, [ebp - 0x188]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x188]
call fcn.1002c070
movss xmm2, dword [0x10137e38]
lea ecx, [ebp - 0xe0]
movss xmm3, dword [0x10137e3c]
xorps xmm0, xmm0
movss xmm4, dword [0x10137e40]
mov eax, dword [0x10137e2c]
movlpd qword [ebp - 0x68], xmm0
movss xmm0, dword [edi + 0x64a34]
subss xmm0, xmm2
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x74], 0
push eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x78], 0x1010a2f4
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [edi + 0x64a38]
subss xmm0, xmm3
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [edi + 0x64a3c]
subss xmm0, xmm4
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0x44], 0
movss dword [ebp - 0x48], xmm0
call fcn.1002be60
movss xmm0, dword [ebp - 0xe0]
movss xmm1, dword [ebp - 0xdc]
mulss xmm0, xmm0
mov byte [ebp - 0xab], 1
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [ebp - 0xd8]
mulss xmm0, xmm0
addss xmm1, xmm0
ucomiss xmm1, dword [0x1010bc90]
lahf
test ah, 0x44
jp 0x100309f9
mov byte [ebp - 0xab], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 0xb0], 0
push eax
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0xac], 1
movss dword [ebp - 0x50], xmm2
movss dword [ebp - 0x4c], xmm3
movss dword [ebp - 0x48], xmm4
mov dword [ebp - 0x44], 0
call fcn.1002be60
mov ecx, dword [0x101c3200]
lea edx, [ebp - 0x188]
push edx
mov dword [ebp - 0xc8], 0
lea edx, [ebp - 0x78]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov eax, dword [ecx]
push edx
push 0x46004003
lea edx, [ebp - 0xf0]
mov eax, dword [eax + 0x14]
push edx
call eax
mov ecx, dword [0x101c3224]
lea edx, [ebp - 0x2c]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push edx
lea edx, [ebp - 0x20]
mov dword [ebp - 0x2c], 0
push edx
mov dword [ebp - 0x28], 0
lea edx, [ebp - 0x2e4]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0x40000000
mov dword [ebp - 0x1c], 0x40000000
mov dword [ebp - 0x18], 0x40000000
mov dword [ebp - 0x2e4], 0xc0000000
mov dword [ebp - 0x2e0], 0xc0000000
mov dword [ebp - 0x2dc], 0xc0000000
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x17c]
push edx
mov eax, dword [eax + 4]
call eax
movss xmm1, dword [ebp - 0x17c]
movss xmm0, dword [ebp - 0x178]
subss xmm0, dword [edi + 0x64a38]
subss xmm1, dword [edi + 0x64a34]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002b1f0
comiss xmm0, dword [0x1010bed8]
jbe 0x10030be1
mov ecx, dword [0x101c3224]
lea eax, [ebp - 0x2f0]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push eax
lea eax, [ebp - 0x2fc]
mov dword [ebp - 0x2f0], 0
push eax
mov dword [ebp - 0x2ec], 0
lea eax, [ebp - 0x308]
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2fc], 0x40000000
mov dword [ebp - 0x2f8], 0x40000000
mov dword [ebp - 0x2f4], 0x40000000
mov dword [ebp - 0x308], 0xc0000000
mov dword [ebp - 0x304], 0xc0000000
mov dword [ebp - 0x300], 0xc0000000
mov edx, dword [ecx]
push eax
lea eax, [edi + 0x64a34]
push eax
mov eax, dword [edx + 4]
call eax
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.100f7fb0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret