Function at 0x100029f0
Capabilities:
Access peb ldr_data

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 0x100a1420
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x5888
call fcn.100734d0
mov eax, dword [0x10104a40]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c00], ecx
mov ecx, dword [0x101c84fc]
mov edi, dword [ebx + 8]
mov byte [0x101c8753], 0
mov dword [ebp - 0x2c04], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov esi, dword [0x101c8500]
push eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0xc]
mov ecx, esi
call edx
mov edi, eax
mov dword [ebp - 0x2c1c], edi
test edi, edi
je 0x10003b0f
mov ecx, dword [0x101c8658]
cmp dword [ecx + edi], 0
jle 0x10003b0f
cmp byte [0x100d2618], 0
je 0x10003b0f
push edi
call fcn.10070f70
push eax
call fcn.10070fb0
add esp, 8
test al, al
jne 0x10003b0f
mov eax, dword [0x101c86ac]
movss xmm0, dword [eax + edi]
movss dword [ebp - 0x2c20], xmm0
call fcn.10070d60
movss xmm0, dword [ebp - 0x2c20]
fstp dword [ebp - 0x2c14]
comiss xmm0, dword [ebp - 0x2c14]
jae 0x10003b0f
push edi
call fcn.10070f70
push eax
call fcn.10070fe0
mov esi, dword [ebp - 0x2c00]
xor edx, edx
movss xmm0, dword [0x100a5398]
add esp, 8
add esi, 0x20
mov byte [ebp - 0x2bd9], al
mov dword [ebp - 0x2c20], edx
mov dword [ebp - 0x2c18], esi
mov dword [esi - 0x20], 0xffffffff
mov dword [esi - 0x1c], 0xffffffff
mov ecx, dword [0x101c8500]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edx, eax
mov dword [ebp - 0x2c0c], edx
test edx, edx
je 0x1000312a
mov ecx, dword [0x101c8678]
cmp byte [ecx + edx], 0
jne 0x1000312a
mov ecx, dword [0x101c8698]
cmp byte [ecx + edx], 0
jne 0x1000312a
mov eax, dword [0x101c8658]
cmp dword [eax + edx], 0
jle 0x1000312a
mov ecx, dword [0x101c8670]
mov eax, dword [ecx + edx]
cmp eax, dword [ecx + edi]
je 0x1000312a
push edx
lea eax, [ebp - 0x2c50]
mov dword [ebp - 0x2c44], 0
push eax
mov ecx, 0x101b54d8
call fcn.1000be50
mov ecx, dword [ebp - 0x2c4c]
mov eax, dword [ebp - 0x2c50]
mov dword [ebp - 4], 0
mov dword [ebp - 0x2c80], ecx
mov dword [ebp - 0x2c14], eax
cmp eax, ecx
je 0x100030b4
add eax, 0x38
mov dword [ebp - 0x2bfc], eax
lea edx, [eax - 0x38]
mov dword [ebp - 0x2c14], edx
mov dword [ebp - 0x2be4], edx
nop word [eax + eax]
mov eax, 0x2b68
call fcn.100734d0
mov esi, edx
mov ecx, 0xada
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.1000c9b0
mov dword [ebp - 0x2c10], eax
add esp, 0x2b68
mov eax, dword [ebp - 0x2bfc]
movss xmm1, dword [eax - 0x38]
lea ecx, [eax - 0x38]
movaps xmm0, xmm1
mov dword [ebp - 0x2bf8], ecx
mov ecx, 7
addss xmm0, dword [eax - 8]
movss xmm2, dword [eax - 0x34]
addss xmm1, dword [eax + 4]
movups xmmword [ebp - 0x2d20], xmm0
movaps xmm0, xmm2
movaps xmmword [ebp - 0x2d10], xmm1
addss xmm0, dword [eax - 4]
addss xmm2, dword [eax + 8]
movss dword [ebp - 0x2c38], xmm1
movss dword [ebp - 0x2c74], xmm0
movss xmm0, dword [eax - 0x30]
movaps xmm3, xmm0
movss dword [ebp - 0x2c58], xmm2
addss xmm0, dword [eax + 0xc]
addss xmm3, dword [eax]
movss dword [ebp - 0x2c34], xmm2
lea eax, [ebp - 0x68]
movss dword [ebp - 0x2c54], xmm0
movss dword [ebp - 0x2c40], xmm3
movss dword [ebp - 0x2c30], xmm0
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 0x10002ca0
push ecx
push dword [ebp - 0x2be4]
mov ecx, dword [ebp - 0x2c00]
lea eax, [ebp - 0x2cc8]
push dword [ebp - 0x2c0c]
push eax
call fcn.100048c0
movss xmm3, dword [ebp - 0x2c54]
lea esi, [ebp - 0x70]
movups xmm6, xmmword [ebp - 0x2d20]
mov edi, dword [ebp - 0x2c1c]
movq xmm0, qword [eax]
movaps xmm4, xmmword [ebp - 0x2d10]
movss xmm5, dword [ebp - 0x2c58]
movaps xmm2, xmm4
movss xmm7, dword [ebp - 0x2c74]
addss xmm2, xmm6
movq qword [ebp - 0x70], xmm0
movaps xmm1, xmm5
mov eax, dword [eax + 8]
addss xmm1, xmm7
movaps xmm0, xmm3
mov dword [ebp - 0x68], eax
addss xmm0, dword [ebp - 0x2c40]
mulss xmm2, dword [0x100a5398]
mulss xmm1, dword [0x100a5398]
mulss xmm0, dword [0x100a5398]
movss dword [ebp - 0x2ccc], xmm3
movss dword [ebp - 0x2cd8], xmm3
movss dword [ebp - 0x2ce4], xmm0
movaps xmm0, xmm2
mov eax, dword [ebp - 0x2ce4]
unpcklps xmm0, xmm1
movq qword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x2c40]
mov dword [ebp - 0x5c], eax
movss dword [ebp - 0x2cf0], xmm0
mov eax, dword [ebp - 0x2cf0]
movq xmm0, qword [ebp - 0x2c38]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x2c30]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x2ccc]
movq qword [ebp - 0x4c], xmm0
movaps xmm0, xmm6
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2cd8]
unpcklps xmm2, xmm1
unpcklps xmm4, xmm7
unpcklps xmm0, xmm7
mov dword [ebp - 0x2c], eax
movss dword [ebp - 0x2cb4], xmm3
mov eax, dword [ebp - 0x2cb4]
unpcklps xmm6, xmm5
movq qword [ebp - 0x58], xmm2
movq qword [ebp - 0x40], xmm4
movq qword [ebp - 0x34], xmm0
movq qword [ebp - 0x28], xmm6
mov dword [ebp - 0x20], eax
nop dword [eax]
mov eax, dword [0x101c866c]
push 0xffffffffffffffff
push dword [ebp - 0x2c0c]
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
mov dword [ebp - 0x2bec], eax
mov eax, dword [0x101c868c]
movq qword [ebp - 0x2bf4], xmm0
movss xmm0, dword [ebp - 0x2bec]
movss xmm2, dword [ebp - 0x2bf4]
addss xmm0, dword [eax + edi + 8]
addss xmm2, dword [eax + edi]
movss xmm1, dword [ebp - 0x2bf0]
addss xmm1, dword [eax + edi + 4]
mov eax, dword [esi + 8]
push edi
sub esp, 0xc
movss dword [ebp - 0x2c84], xmm0
movq xmm0, qword [esi]
mov ecx, esp
sub esp, 0xc
unpcklps xmm2, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2c84]
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
lea eax, [ebp - 0x2cb0]
push eax
mov ecx, 0x101b54b9
call fcn.1000a410
cmp dword [eax], 0
jg 0x10002ea2
add esi, 0xc
lea eax, [ebp - 0x1c]
cmp esi, eax
jne 0x10002df0
mov eax, dword [ebp - 0x2bfc]
jmp 0x1000306c
mov eax, dword [ebp - 0x2bfc]
cmp byte [eax + 0x38], 0
je 0x10002eb5
call fcn.10070ee0
fstp st(0)
push 0
mov eax, 0x2b68
call fcn.100734d0
mov esi, dword [ebp - 0x2bf8]
mov edi, esp
mov ecx, 0xada
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x2c0c]
mov ecx, 0x101b54d8
push edi
call fcn.1000caf0
movd xmm0, dword [ebp - 0x2c10]
mov eax, dword [0x101c8504]
cvtdq2ps xmm0, xmm0
push ecx
mov ecx, 0x101b54d8
mulss xmm0, dword [eax + 0x20]
movss dword [esp], xmm0
push edi
call fcn.1000ba30
cmp byte [ebp - 0x2bd9], 0
mov ecx, dword [ebp - 0x2c00]
je 0x10002f79
mov esi, dword [ebp - 0x2c18]
push esi
push dword [ebp - 0x2bf8]
push edi
call fcn.10004590
mov ecx, dword [ebp - 0x2bfc]
movzx eax, al
neg eax
sbb eax, eax
and eax, 0x3e8
mov dword [esi - 0x1c], eax
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0x2c10]
mov dword [esi - 0x18], eax
lea eax, [ecx - 0x38]
mov byte [esi - 0x10], 0
mov dword [esi - 0x20], 0xffffffff
push eax
lea ecx, [esi + 0xc]
call fcn.10001ae0
mov edi, dword [ebp - 0x2c1c]
mov eax, dword [ebp - 0x2bfc]
mov dword [esi - 0x14], 0
jmp 0x10003072
mov esi, dword [ebp - 0x2bf8]
lea eax, [ebp - 0x2c78]
push eax
lea eax, [ebp - 0x2c64]
mov dword [ebp - 0x2c64], 0
push eax
push esi
push edi
mov dword [ebp - 0x2c60], 0
mov dword [ebp - 0x2c5c], 0
mov dword [ebp - 0x2c70], 0
mov dword [ebp - 0x2c6c], 0
mov dword [ebp - 0x2c68], 0
call fcn.10003b40
mov ecx, dword [ebp - 0x2c00]
lea eax, [ebp - 0x2c7c]
push eax
lea eax, [ebp - 0x2c70]
push eax
push esi
push edi
call fcn.10003ed0
mov edx, dword [ebp - 0x2c78]
mov esi, edx
mov ecx, dword [ebp - 0x2c7c]
cmp edx, ecx
mov eax, dword [ebp - 0x2bfc]
mov edi, dword [ebp - 0x2c44]
cmovl esi, ecx
mov dword [eax + 0x3c], esi
cmp edx, edi
jg 0x10003015
cmp ecx, edi
jle 0x10003066
movq xmm0, qword [ebp - 0x2c64]
mov eax, dword [ebp - 0x2c5c]
push dword [ebp - 0x2bf8]
mov dword [ebp - 0x2c44], esi
mov esi, dword [ebp - 0x2c18]
movq qword [esi - 0xc], xmm0
movq xmm0, qword [ebp - 0x2c70]
mov dword [esi - 4], eax
mov eax, dword [ebp - 0x2c68]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x2c10]
mov dword [esi - 0x20], edx
mov dword [esi - 0x1c], ecx
mov dword [esi - 0x18], eax
jmp 0x10002f59
mov edi, dword [ebp - 0x2c1c]
mov esi, dword [ebp - 0x2c18]
mov edx, dword [ebp - 0x2c14]
add eax, 0x2b68
add dword [ebp - 0x2be4], 0x2b68
add edx, 0x2b68
mov dword [ebp - 0x2bfc], eax
add eax, 0xffffffc8
mov dword [ebp - 0x2c14], edx
cmp eax, dword [ebp - 0x2c80]
jne 0x10002be0
mov eax, dword [ebp - 0x2c50]
mov dword [ebp - 0x2c14], eax
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x1000312a
mov ecx, dword [ebp - 0x2c48]
sub ecx, eax
mov eax, 0x5e5d422b
imul ecx
mov ecx, dword [ebp - 0x2c14]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
imul edx, eax, 0x2b68
mov eax, ecx
cmp edx, 0x1000
jb 0x10003102
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10003b2f
push edx
push ecx
call fcn.100733d0
add esp, 8
mov dword [ebp - 0x2c50], 0
mov dword [ebp - 0x2c4c], 0
mov dword [ebp - 0x2c48], 0
mov edx, dword [ebp - 0x2c20]
add esi, 0x2b94
inc edx
mov dword [ebp - 0x2c18], esi
mov dword [ebp - 0x2c20], edx
cmp edx, 0x40
jl 0x10002b12
lea ecx, [ebp - 0x2bd8]
mov dword [ebp - 0x2be8], 0
mov dword [ebp - 0x2c08], 0
call fcn.100016e0
mov esi, dword [ebp - 0x2c00]
mov dword [ebp - 0x2be0], 0
add esi, 0x10
mov byte [ebp - 0x2bda], 0
mov dword [ebp - 0x2c2c], 0
mov dword [ebp - 0x2c28], 0
mov dword [ebp - 0x2c24], 0
mov dword [ebp - 0x2bf8], 0
nop dword [eax]
mov ecx, dword [0x101c8500]
push dword [ebp - 0x2bf8]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edx, eax
mov dword [ebp - 0x2be4], edx
test edx, edx
je 0x1000358e
mov ecx, dword [0x101c8678]
cmp byte [ecx + edx], 0
jne 0x1000358e
mov ecx, dword [0x101c8698]
cmp byte [ecx + edx], 0
jne 0x1000358e
mov eax, dword [0x101c8658]
cmp dword [eax + edx], 0
jle 0x1000358e
mov ecx, dword [0x101c8670]
mov eax, dword [ecx + edx]
cmp eax, dword [ecx + edi]
je 0x1000358e
cmp byte [ebp - 0x2bd9], 0
lea eax, [ebp - 0x2bda]
mov ecx, dword [esi - 0x10]
mov dword [ebp - 0x2cb0], eax
lea eax, [ebp - 0x2c2c]
mov dword [ebp - 0x2cac], eax
lea eax, [ebp - 0x2be0]
mov dword [ebp - 0x2ca8], eax
lea eax, [ebp - 0x2bd8]
mov dword [ebp - 0x2ca4], eax
lea eax, [ebp - 0x2be8]
mov dword [ebp - 0x2ca0], eax
lea eax, [ebp - 0x2c08]
mov dword [ebp - 0x2c9c], eax
mov eax, dword [ebp - 0x2bf8]
mov dword [ebp - 0x2c94], eax
mov eax, dword [ebp - 0x2c00]
mov dword [ebp - 0x2c90], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x2c98], edx
mov dword [ebp - 0x2c10], eax
mov dword [ebp - 0x2c0c], ecx
je 0x100033b0
cmp eax, dword [ebp - 0x2be8]
jle 0x1000358e
push 1
lea ecx, [ebp - 0x2cb0]
call fcn.10002890
mov ecx, dword [ebp - 0x2be0]
test ecx, ecx
je 0x10003af2
cmp dword [0x100d2628], 1
mov eax, dword [0x101c8504]
movss xmm0, dword [0x101b4100]
mov byte [0x101c8753], 1
addss xmm0, dword [eax + 0x20]
movss dword [0x101b4100], xmm0
jne 0x10003653
mov eax, dword [0x101c865c]
test byte [eax + edi], 1
je 0x10003653
mov edx, dword [ebp - 0x2be8]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x100d262c]
ja 0x10003326
mov eax, dword [0x101c8658]
mov eax, dword [eax + ecx]
add eax, 0xa
cmp edx, eax
jle 0x10003653
mov al, byte [ebp - 0x2bd9]
test al, al
jne 0x10003659
cmp byte [0x101c8757], al
jne 0x10003659
push 0
call fcn.10070a70
mov esi, dword [ebp - 0x2c04]
add esp, 4
test al, al
je 0x10003645
mov dword [esi + 0x28], 0
mov eax, dword [0x101c8660]
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
movq qword [ebp - 0x2bf4], xmm0
movss xmm1, dword [ebp - 0x2bf4]
movss xmm0, dword [ebp - 0x2bf0]
mulss xmm1, xmm1
mov dword [ebp - 0x2bec], eax
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100035af
sqrtsd xmm0, xmm0
jmp 0x100035b4
test eax, eax
jg 0x100033bc
test ecx, ecx
jle 0x1000358e
lea eax, [esi + 0x2784]
push eax
lea ecx, [ebp - 0x2c39]
call fcn.10002810
mov edx, dword [ebp - 0x2c10]
test al, al
je 0x1000343c
cmp edx, dword [ebp - 0x2be8]
jle 0x1000358e
cmp byte [esi], 0
jne 0x1000358e
mov ecx, dword [ebp - 0x2be4]
mov byte [ebp - 0x2bda], 1
mov eax, dword [esi - 8]
mov dword [ebp - 0x2c08], eax
lea eax, [esi + 0x1c]
mov dword [ebp - 0x2be0], ecx
lea ecx, [ebp - 0x2bd8]
push eax
call fcn.10001ae0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x2c2c], xmm0
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x2c24], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x2be8], eax
jmp 0x1000358e
mov eax, dword [ebp - 0x2c0c]
test edx, edx
jle 0x1000357a
test eax, eax
jle 0x1000357a
mov eax, dword [0x101c8658]
mov ecx, dword [ebp - 0x2be4]
cmp edx, dword [eax + ecx]
jg 0x10003517
cmp edx, dword [ebp - 0x2c0c]
jg 0x10003517
cmp byte [0x100d261a], 0
jne 0x100034ce
mov eax, dword [0x100d261c]
cmp eax, dword [esi - 0xc]
jl 0x100034ce
mov byte [ebp - 0x2bda], 0
mov eax, dword [esi - 8]
mov dword [ebp - 0x2c08], eax
lea eax, [esi + 0x1c]
mov dword [ebp - 0x2be0], ecx
lea ecx, [ebp - 0x2bd8]
push eax
call fcn.10001ae0
movq xmm0, qword [esi + 4]
movq qword [ebp - 0x2c2c], xmm0
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x2c24], eax
mov eax, dword [esi - 0x10]
mov dword [ebp - 0x2be8], eax
jmp 0x1000358e
cmp byte [esi], 0
sete byte [ebp - 0x2bda]
mov eax, dword [esi - 8]
mov dword [ebp - 0x2c08], eax
lea eax, [esi + 0x1c]
mov dword [ebp - 0x2be0], ecx
lea ecx, [ebp - 0x2bd8]
push eax
call fcn.10001ae0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x2c2c], xmm0
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x2c24], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x2be8], eax
jmp 0x1000358e
cmp byte [esi], 0
sete byte [ebp - 0x2bda]
mov eax, dword [esi - 8]
mov dword [ebp - 0x2c08], eax
lea eax, [esi + 0x1c]
mov dword [ebp - 0x2be0], ecx
lea ecx, [ebp - 0x2bd8]
push eax
call fcn.10001ae0
movq xmm0, qword [esi + 0x10]
mov ecx, dword [ebp - 0x2be4]
mov edx, dword [ebp - 0x2c10]
movq qword [ebp - 0x2c2c], xmm0
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x2c24], eax
mov eax, dword [esi - 0xc]
mov dword [ebp - 0x2be8], eax
mov eax, dword [0x101c8658]
cmp edx, dword [eax + ecx]
jg 0x100032b2
jmp 0x1000358e
cmp edx, eax
lea ecx, [ebp - 0x2cb0]
setg al
movzx eax, al
push eax
call fcn.10002890
mov eax, dword [ebp - 0x2bf8]
add esi, 0x2b94
inc eax
mov dword [ebp - 0x2bf8], eax
cmp eax, 0x20
jl 0x100031b0
jmp 0x100032b2
call fcn.10079330
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x100a53a4]
jbe 0x100035cb
movss xmm0, dword [0x100a53c8]
jmp 0x100035ce
xorps xmm0, xmm0
movss dword [esi + 0x24], xmm0
mov eax, dword [0x101c8660]
mov dword [ebp - 0x2bf4], 0
mov dword [ebp - 0x2bf0], 0
mov dword [ebp - 0x2bec], 0
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
mov dword [ebp - 0x2c30], eax
lea eax, [ebp - 0x2c38]
push eax
lea eax, [ebp - 0x2bf4]
movq qword [ebp - 0x2c38], xmm0
push eax
lea eax, [ebp - 0x2cc8]
push eax
call fcn.10002980
add esp, 8
movss xmm0, dword [eax + 4]
addss xmm0, dword [0x100a53c0]
movss dword [esp], xmm0
push esi
call fcn.10071070
add esp, 8
mov ecx, dword [ebp - 0x2be0]
mov al, byte [ebp - 0x2bd9]
jmp 0x1000365f
mov al, byte [ebp - 0x2bd9]
mov esi, dword [ebp - 0x2c04]
cmp byte [0x100d2619], 0
je 0x1000366c
or dword [esi + 0x30], 4
test al, al
je 0x10003682
mov eax, dword [0x101c8658]
mov byte [ebp - 0x2be4], 1
cmp dword [eax + ecx], 0x1e
jg 0x10003689
mov byte [ebp - 0x2be4], 0
push dword [ebp - 0x2be4]
call fcn.10070a70
add esp, 4
test al, al
je 0x10003ad5
mov eax, dword [0x101c86bc]
cmp byte [eax + edi], 0
jne 0x100036cf
push edi
call fcn.10070f70
push eax
call fcn.10071020
add esp, 8
test al, al
je 0x100036cf
mov eax, dword [0x101c865c]
test byte [eax + edi], 1
je 0x100036cf
or dword [esi + 0x30], 0x800
cmp dword [0x100d2628], 0
je 0x10003828
mov eax, dword [0x101c865c]
test byte [eax + edi], 1
je 0x10003828
mov edx, dword [ebp - 0x2be8]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x100d262c]
ja 0x10003715
mov ecx, dword [ebp - 0x2be0]
mov eax, dword [0x101c8658]
cmp edx, dword [eax + ecx]
jle 0x10003828
cmp byte [ebp - 0x2bd9], 0
jne 0x10003828
cmp byte [0x101c8757], 0
jne 0x10003828
push 0
call fcn.10070a70
add esp, 4
test al, al
je 0x10003828
mov dword [esi + 0x28], 0
mov eax, dword [0x101c8660]
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
movq qword [ebp - 0x2bf4], xmm0
movss xmm1, dword [ebp - 0x2bf4]
movss xmm0, dword [ebp - 0x2bf0]
mulss xmm1, xmm1
mov dword [ebp - 0x2bec], eax
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10003792
sqrtsd xmm0, xmm0
jmp 0x10003797
call fcn.10079330
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x100a53a4]
jbe 0x100037ae
movss xmm0, dword [0x100a53c8]
jmp 0x100037b1
xorps xmm0, xmm0
movss dword [esi + 0x24], xmm0
mov eax, dword [0x101c8660]
mov dword [ebp - 0x2bf4], 0
mov dword [ebp - 0x2bf0], 0
mov dword [ebp - 0x2bec], 0
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
mov dword [ebp - 0x2c30], eax
lea eax, [ebp - 0x2c38]
push eax
lea eax, [ebp - 0x2bf4]
movq qword [ebp - 0x2c38], xmm0
push eax
lea eax, [ebp - 0x2cc8]
push eax
call fcn.10002980
add esp, 8
movss xmm0, dword [eax + 4]
addss xmm0, dword [0x100a53c0]
movss dword [esp], xmm0
push esi
call fcn.10071070
add esp, 8
mov eax, dword [ebp - 0x2be0]
mov dword [ebp - 0x5890], eax
lea eax, [ebp - 0x2bd8]
push 0x2b68
push eax
lea eax, [ebp - 0x588c]
push eax
call fcn.100752b0
add esp, 0xc
cmp byte [ebp - 0x2bd9], 0
jne 0x100038aa
mov ecx, dword [ebp - 0x5890]
mov eax, dword [0x101c865c]
test byte [ecx + eax], 1
je 0x100038aa
cmp dword [0x100d263c], 0
jne 0x10003887
mov eax, dword [0x101c8658]
mov eax, dword [ecx + eax]
add eax, 0xa
cmp dword [ebp - 0x2be8], eax
jge 0x100038aa
jmp 0x10003890
test byte [ebp - 0x2d54], 0x1e
jne 0x100038aa
movss xmm0, dword [0x101b4100]
comiss xmm0, dword [0x100d2640]
setae al
test al, al
je 0x10003af2
push 0
mov eax, 0x2b68
lea esi, [ebp - 0x2bd8]
call fcn.100734d0
mov edi, esp
mov ecx, 0xada
push dword [ebp - 0x2be0]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x101b54d8
call fcn.1000caf0
movd xmm0, dword [ebp - 0x2c08]
cvtdq2ps xmm0, xmm0
push ecx
mov ecx, 0x101b54d8
movss dword [esp], xmm0
push dword [ebp - 0x2be0]
call fcn.1000ba30
mov ecx, dword [0x101c84fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov esi, dword [ebp - 0x2c1c]
mov edi, eax
push esi
call fcn.10070f70
add esp, 4
cmp byte [ebp - 0x2bd9], 0
jne 0x10003975
test eax, eax
je 0x10003930
mov ecx, dword [0x101c86c4]
cmp dword [eax + ecx], 0x40
je 0x10003975
movq xmm0, qword [ebp - 0x2c2c]
sub esp, 0xc
mov eax, dword [ebp - 0x2c24]
mov edx, esp
mov ecx, dword [ebp - 0x2c00]
push dword [ebp - 0x2be0]
movq qword [edx], xmm0
mov dword [edx + 8], eax
call fcn.10004f50
test al, al
je 0x10003af2
test edi, edi
je 0x10003af2
cmp dword [edi + 0x2c], 0
je 0x10003af2
cmp byte [ebp - 0x2be4], 0
mov ecx, 1
mov edi, dword [ebp - 0x2c04]
mov eax, 0x800
cmove eax, ecx
or dword [edi + 0x30], eax
mov eax, dword [0x101c866c]
movq xmm0, qword [eax + esi]
mov eax, dword [eax + esi + 8]
mov dword [ebp - 0x2bec], eax
mov eax, dword [0x101c868c]
movq qword [ebp - 0x2bf4], xmm0
movss xmm0, dword [ebp - 0x2bf4]
addss xmm0, dword [eax + esi]
movss dword [ebp - 0x2c38], xmm0
movss xmm0, dword [ebp - 0x2bf0]
addss xmm0, dword [eax + esi + 4]
movss dword [ebp - 0x2c34], xmm0
movss xmm0, dword [ebp - 0x2bec]
addss xmm0, dword [eax + esi + 8]
lea eax, [ebp - 0x2c2c]
push eax
lea eax, [ebp - 0x2c38]
push eax
lea eax, [ebp - 0x2cbc]
movss dword [ebp - 0x2c30], xmm0
push eax
call fcn.10002980
mov ecx, dword [0x101c8694]
add esp, 0xc
cmp byte [ebp - 0x2bd9], 0
movss xmm3, dword [eax]
movq xmm0, qword [ecx + esi]
mov ecx, dword [ecx + esi + 8]
movss xmm2, dword [eax + 4]
movq qword [ebp - 0x2bf4], xmm0
movss xmm0, dword [ebp - 0x2bf4]
addss xmm0, xmm0
mov dword [ebp - 0x2bec], ecx
movss xmm1, dword [ebp - 0x2bec]
addss xmm1, xmm1
subss xmm3, xmm0
movss xmm0, dword [ebp - 0x2bf0]
addss xmm0, xmm0
subss xmm2, xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
unpcklps xmm3, xmm2
movss dword [ebp - 0x2c84], xmm0
mov eax, dword [ebp - 0x2c84]
movq qword [edi + 0xc], xmm3
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x2c08]
mov dword [edi + 8], eax
jne 0x10003abc
sub esp, 0x400
lea esi, [ebp - 0x470]
mov edi, esp
mov ecx, 0x100
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x2be0]
mov ecx, 0x101b59e0
call fcn.1001c940
cmp byte [0x101c8757], 0
jne 0x10003af2
mov byte [0x101c874c], 0
mov byte [0x101c874d], 0
jmp 0x10003af2
push edi
call fcn.10070f70
add esp, 4
test eax, eax
je 0x10003af2
mov edx, dword [0x101c86c4]
cmp dword [eax + edx], 0x40
jne 0x10003af2
or dword [esi + 0x30], 1
mov ecx, 0x101b54d8
call fcn.1000cfd0
cmp dword [ebp - 0x2be0], 0
jne 0x10003b0f
mov dword [0x101b4100], 0
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.100734be
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.10078f4f
int3