Function at 0x100d6490
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x168
mov eax, dword [0x10167368]
xor eax, esp
mov dword [esp + 0x164], eax
cmp dword [ebp + 8], 5
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
jne 0x100d6c19
mov esi, dword [0x101f7060]
test esi, esi
je 0x100d6c19
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101faed8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10202e9c]
mov dword [esp + 0x20], ecx
cmp eax, dword [ecx + 4]
jle 0x100d651b
push 0x10202e9c
call fcn.100e1a85
add esp, 4
cmp dword [0x10202e9c], 0xffffffff
jne 0x100d6517
mov eax, dword [0x10202ea4]
push 0x10202e9c
mov dword [0x10202ea0], eax
call fcn.100e1a3b
add esp, 4
mov ecx, dword [esp + 0x20]
mov eax, dword [0x10202ea0]
cmp dword [eax + esi], 0
jne 0x100d6c19
mov eax, dword [0x10202eac]
cmp eax, dword [ecx + 4]
jle 0x100d6564
push 0x10202eac
call fcn.100e1a85
add esp, 4
cmp dword [0x10202eac], 0xffffffff
jne 0x100d6564
mov eax, dword [0x10202ea8]
push 0x10202eac
mov dword [0x10202e98], eax
call fcn.100e1a3b
add esp, 4
mov eax, dword [0x10202e98]
cmp dword [eax + esi], 0
jle 0x100d6c19
cmp byte [0x101ffad0], 0
mov eax, dword [0x101f7060]
movss xmm1, dword [0x10161cc4]
movss xmm2, dword [0x101619a0]
mov dword [esp + 0x1c], eax
je 0x100d670d
movss xmm0, dword [0x101ffaf0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101ffae4]
mulss xmm0, xmm1
cvttss2si edx, xmm0
movss xmm0, dword [0x101ffae8]
mulss xmm0, xmm1
cvttss2si esi, xmm0
movss xmm0, dword [0x101ffaec]
mulss xmm0, xmm1
mov dword [esp + 0x18], esi
movd xmm1, dword [0x101ffaf4]
mov esi, dword [eax + 0xba90]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
movss dword [esp + 0x2c], xmm1
cmp esi, dword [edi]
jle 0x100d66ff
movzx eax, cl
lea edi, [esi + esi*4]
cvttss2si ecx, xmm0
mov dword [esp + 0x30], eax
shl edi, 2
movaps xmm2, xmm1
xorps xmm2, xmmword [0x10162350]
movzx eax, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
movzx eax, cl
mov dword [esp + 0x18], eax
movzx eax, dl
movss dword [esp + 0x14], xmm2
mov dword [esp + 0x28], eax
nop word [eax + eax]
mov ecx, dword [0x101faf40]
push ecx
mov dword [esp], 0x40800000
push dword [esp + 0x34]
mov eax, dword [ecx]
push dword [esp + 0x2c]
mov dword [esp + 0x64], 0
push dword [esp + 0x24]
mov edx, dword [eax + 4]
lea eax, [esp + 0x68]
push dword [esp + 0x38]
mov dword [esp + 0x70], 0
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x78], 0
push eax
lea eax, [esp + 0x8c]
movss dword [esp + 0x80], xmm1
push eax
mov eax, dword [esp + 0x3c]
movss dword [esp + 0x88], xmm1
movss dword [esp + 0x8c], xmm1
movss dword [esp + 0x90], xmm2
mov eax, dword [eax + 0xba84]
add eax, 0xffffffec
movss dword [esp + 0x94], xmm2
add eax, edi
movss dword [esp + 0x98], xmm2
push eax
call edx
mov eax, dword [esp + 0xc]
dec esi
movss xmm1, dword [esp + 0x2c]
add edi, 0xffffffec
movss xmm2, dword [esp + 0x14]
cmp esi, dword [eax]
jg 0x100d6640
movss xmm2, dword [0x101619a0]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xba90], 0
xor eax, eax
jmp 0x100d6713
mov eax, dword [eax + 0xba90]
cmp eax, dword [edi]
je 0x100d6719
mov dword [edi], eax
cmp dword [0x101ffaf8], 0
movd xmm0, dword [0x101ffb00]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [esp + 0x1c], xmm0
je 0x100d6c19
xor esi, esi
add edi, 8
mov dword [esp + 0xc], esi
mov ecx, dword [edi]
mov eax, 0x2aaaaaab
sub ecx, dword [edi - 4]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100d6c08
mov ecx, dword [0x101faf10]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [esp + 0x14], eax
test eax, eax
je 0x100d6c03
mov esi, dword [0x101f7060]
cmp eax, esi
sete byte [esp + 0x13]
je 0x100d6835
mov eax, dword [esp + 0x20]
mov ecx, dword [0x10202ee8]
cmp ecx, dword [eax + 4]
jle 0x100d67da
push 0x10202ee8
call fcn.100e1a85
mov ecx, dword [0x10202ee8]
add esp, 4
cmp ecx, 0xffffffff
jne 0x100d67d4
mov eax, dword [0x10202ed4]
push 0x10202ee8
mov dword [0x10202ec8], eax
call fcn.100e1a3b
mov ecx, dword [0x10202ee8]
add esp, 4
mov esi, dword [0x101f7060]
mov edx, dword [esp + 0x14]
mov eax, dword [0x10202ec8]
mov eax, dword [eax + edx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
cmp ecx, dword [eax + 4]
jle 0x100d6823
push 0x10202ee8
call fcn.100e1a85
add esp, 4
cmp dword [0x10202ee8], 0xffffffff
jne 0x100d6823
mov eax, dword [0x10202ed4]
push 0x10202ee8
mov dword [0x10202ec8], eax
call fcn.100e1a3b
add esp, 4
mov eax, dword [0x10202ec8]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esi + eax]
je 0x100d6835
mov al, 1
jmp 0x100d6837
xor al, al
cmp byte [esp + 0x13], 0
je 0x100d6847
movups xmm0, xmmword [0x101ffb14]
jmp 0x100d685b
test al, al
jne 0x100d6854
movups xmm0, xmmword [0x101ffb24]
jmp 0x100d685b
movups xmm0, xmmword [0x101ffb04]
movss xmm1, dword [0x10161cc4]
movups xmmword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x4c]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x40]
mulss xmm0, xmm1
mov dword [esp + 0x14], eax
cvttss2si edx, xmm0
movss xmm0, dword [esp + 0x44]
mulss xmm0, xmm1
movzx edx, dl
mov dword [esp + 0x24], edx
cvttss2si ecx, xmm0
movss xmm0, dword [esp + 0x48]
mulss xmm0, xmm1
movzx ecx, cl
mov dword [esp + 0x28], ecx
cvttss2si eax, xmm0
movzx esi, al
mov eax, dword [esp + 0x14]
movzx eax, al
shl eax, 8
or eax, esi
mov dword [esp + 0x2c], esi
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [0x101ffafc]
sub eax, 0
je 0x100d6a90
sub eax, 1
je 0x100d6a60
sub eax, 1
jne 0x100d6bff
mov edx, dword [edi]
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
movss xmm2, dword [edx - 0x18]
movss xmm1, dword [edx - 0x14]
movss xmm0, dword [edx - 0x10]
subss xmm2, dword [edx - 0xc]
subss xmm1, dword [edx - 8]
subss xmm0, dword [edx - 4]
unpcklps xmm2, xmm1
movss dword [esp + 0x15c], xmm0
mov eax, dword [esp + 0x15c]
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
lea ecx, [esp + 0x40]
call fcn.10058d50
movss xmm2, dword [edx - 0xc]
add esp, 0xc
subss xmm2, dword [edx - 0x18]
movss xmm1, dword [edx - 8]
subss xmm1, dword [edx - 0x14]
movss xmm0, dword [edx - 4]
subss xmm0, dword [edx - 0x10]
mulss xmm2, xmm2
mov eax, dword [0x101faf14]
mulss xmm1, xmm1
mov ecx, dword [0x101faf1c]
mulss xmm0, xmm0
add ecx, 0x18
mov dword [esp + 0xb4], 0
addss xmm1, xmm2
movss xmm3, dword [eax + 0x10]
xorps xmm2, xmm2
movss xmm4, dword [esp + 0x1c]
mov eax, dword [edx - 4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x3c]
addss xmm1, xmm0
mov dword [esp + 0x90], eax
movq xmm0, qword [edx - 0xc]
mov edx, dword [esp + 0x18]
movq qword [esp + 0x7c], xmm0
movq xmm0, qword [esp + 0x34]
sqrtss xmm2, xmm1
movaps xmm1, xmm4
mov dword [esp + 0xb4], edx
xorps xmm1, xmmword [0x10162350]
movss dword [esp + 0x15c], xmm1
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x9c], eax
movss dword [esp + 0x168], xmm4
mov eax, dword [esp + 0x168]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x7c]
movss dword [esp + 0xac], xmm3
addss xmm3, dword [0x10161b10]
movq qword [esp + 0x88], xmm0
xorps xmm0, xmm0
push eax
push dword [ecx + 0xc]
unpcklps xmm0, xmm1
unpcklps xmm2, xmm4
movq qword [esp + 0x9c], xmm0
movq qword [esp + 0xa8], xmm2
movss dword [esp + 0xb8], xmm3
call fcn.1005ed80
jmp 0x100d6bff
mov ecx, dword [0x101faf40]
mov edx, dword [edi]
push ecx
mov dword [esp], 0x40400000
mov esi, dword [ecx]
push 0
push dword [esp + 0x34]
lea eax, [edx - 0xc]
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
lea eax, [edx - 0x18]
push eax
call dword [esi + 0x14]
jmp 0x100d6bff
mov edx, dword [edi]
lea ecx, [esp + 0xb8]
movq xmm1, qword [edx - 0xc]
mov esi, dword [edx - 4]
movq xmm0, qword [edx - 0x18]
mov edx, dword [edx - 0x10]
call fcn.100d39d0
mov ecx, dword [0x101faf74]
movq qword [esp + 0xcc], xmm0
mov dword [esp + 0xd4], edx
movq qword [esp + 0xd8], xmm1
mov dword [esp + 0xe0], esi
mov dword [esp + 0xb8], 0
mov dword [esp + 0xe8], str.sprites_purplelaser1.vmt
mov eax, dword [ecx]
push str.sprites_purplelaser1.vmt
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0x18]
movss xmm0, dword [esp + 0x1c]
mov dword [esp + 0xe4], eax
mov eax, edx
shr eax, 0x18
movss dword [esp + 0xfc], xmm0
movss dword [esp + 0x100], xmm0
mov ecx, dword [0x101faf44]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0x40400000
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0x40000000
movss dword [esp + 0x10c], xmm0
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mov dword [esp + 0x110], 0x3e4ccccd
mov dword [esp + 0x114], 0
movss dword [esp + 0x11c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [esp + 0xb8]
mov dword [esp + 0x118], 0
mov dword [esp + 0x12c], 2
mov byte [esp + 0x128], 1
mov dword [esp + 0x130], 0x8300
movss dword [esp + 0x120], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push edx
movss dword [esp + 0x128], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
test eax, eax
je 0x100d6bff
mov ecx, dword [0x101faf44]
push eax
mov edx, dword [ecx]
call dword [edx + 0x18]
mov esi, dword [esp + 0xc]
mov eax, dword [edi - 4]
mov dword [edi], eax
inc esi
add edi, 0xc
mov dword [esp + 0xc], esi
cmp esi, 0x41
jl 0x100d6744
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
xor ecx, esp
call fcn.100e1968
mov esp, ebp
pop ebp
ret 4