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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x10104040]
xor eax, esp
mov dword [esp + 0x88], eax
mov ecx, dword [0x101235d4]
push ebx
push esi
push edi
test ecx, ecx
je 0x100d7bb7
cmp byte [0x10110090], 0
je 0x100d7bb7
cmp byte [0x101235da], 0
jne 0x100d7636
mov eax, dword [0x101275e4]
cmp eax, dword [0x101275e8]
je 0x100d7bb7
push 3
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ecx, dword [0x101275e0]
test ecx, ecx
je 0x100d760d
mov eax, dword [ecx + 4]
mov dword [ecx + 4], 0
test eax, eax
je 0x100d760d
nop word [eax + eax]
mov dword [eax], 0
mov eax, dword [eax + 4]
test eax, eax
jne 0x100d7600
lea ecx, [esp + 0x78]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov eax, dword [0x101275e4]
mov dword [0x101275e8], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.100dd730
mov esp, ebp
pop ebp
ret
mov edx, dword [0x101275e8]
sub edx, dword [0x101275e4]
sar edx, 5
mov dword [esp + 0x38], edx
test edx, edx
je 0x100d7bb7
mov eax, dword [0x10125ed0]
mov ebx, edx
mov edi, dword [sym.imp.ucrtbased.dll__invalid_parameter]
add eax, 0xffffffc0
xor eax, 0x76e410eb
shl ebx, 5
movd xmm2, dword [eax + ecx]
mov ecx, edx
mov eax, dword [0x10125c70]
mov edx, dword [sym.imp.ucrtbased.dll__CrtDbgReport]
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [eax + 0x20]
movss dword [esp + 0x78], xmm2
nop dword [eax]
mov eax, dword [0x101275e8]
mov esi, ecx
sub eax, dword [0x101275e4]
dec ecx
sub ebx, 0x20
sar eax, 5
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], ebx
cmp ecx, eax
jb 0x100d76fd
push str.vector_subscript_out_of_range
push 0x100ec5a8
push 0
push 0x762
push 0x100ec970
push 2
call edx
add esp, 0x18
cmp eax, 1
jne 0x100d76d3
int3
push 0
push 0x762
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807include_vector
push 0x100ec6dc
push str._vector_subscript_out_of_range_
call edi
movss xmm2, dword [esp + 0x8c]
add esp, 0x14
mov edx, dword [sym.imp.ucrtbased.dll__CrtDbgReport]
mov ecx, dword [0x101275e4]
mov dword [esp + 0x64], ecx
add ebx, ecx
je 0x100d7b9b
movd xmm1, dword [ebx + 0x18]
movaps xmm0, xmm2
mov eax, dword [0x10125c70]
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
subss xmm0, xmm1
call fcn.10026e30
comiss xmm0, dword [0x101102a0]
jbe 0x100d7bcc
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x7c]
push 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov edi, dword [0x101275e0]
mov esi, dword [esp + 0x14]
cmp esi, edi
je 0x100d7820
test esi, esi
je 0x100d7806
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100d7798
nop
lea ecx, [esp + 0x14]
cmp eax, ecx
je 0x100d7793
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100d7780
cmp dword [esi], 0
jne 0x100d77f0
push str.ITERATOR_LIST_CORRUPTED_
push 0x100ec5a8
push 0
push 0x536
push 0x100ec5b0
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100d77bf
int3
mov ebx, dword [sym.imp.ucrtbased.dll__invalid_parameter]
push 0
push 0x536
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807includexmemory
push 0x100ec6dc
push str._ITERATOR_LIST_CORRUPTED__
call ebx
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov dword [esi], eax
mov dword [esp + 0x14], 0
jmp 0x100d780c
mov eax, dword [esp + 0x18]
mov ebx, dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov dword [esi], eax
mov dword [esp + 0x14], 0
jmp 0x100d780c
mov ebx, dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
mov dword [edi + 4], eax
mov dword [esp + 0x14], edi
jmp 0x100d7826
mov ebx, dword [sym.imp.ucrtbased.dll__invalid_parameter]
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea eax, [esp + 0x14]
mov dword [esp + 0x48], 0
xorps xmm0, xmm0
lea ecx, [esp + 0x40]
push eax
movq qword [esp + 0x44], xmm0
call fcn.10026ff0
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x40]
push dword [esp + 0x34]
mov dword [esp + 0x4c], eax
call fcn.100d93e0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x6c]
call fcn.10026ff0
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], esi
mov dword [esp + 0x70], esi
test eax, eax
je 0x100d789f
cmp dword [eax], 0x101275e0
jne 0x100d789f
cmp esi, dword [0x101275e4]
jb 0x100d789f
mov eax, dword [0x101275e8]
cmp eax, esi
ja 0x100d78e6
push str.vector_erase_iterator_outside_range
push 0x100ec5a8
push 0
push 0x6c1
push 0x100ec970
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100d78c6
int3
push 0
push 0x6c1
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807include_vector
push 0x100ec6dc
push str._vector_erase_iterator_outside_range_
call ebx
mov eax, dword [0x101275e8]
add esp, 0x14
push eax
push esi
mov ecx, 0x101275e0
call fcn.10037f50
mov ebx, dword [0x101275e8]
mov edi, esi
add esi, 0x20
cmp esi, ebx
je 0x100d7954
lea ecx, [edi + 0x14]
lea edx, [esi + 0x14]
mov eax, dword [esi]
lea edi, [edi + 0x20]
mov dword [edi - 0x20], eax
lea ecx, [ecx + 0x20]
mov eax, dword [edx - 0x10]
lea edx, [edx + 0x20]
mov dword [ecx - 0x30], eax
add esi, 0x20
mov eax, dword [edx - 0x2c]
mov dword [ecx - 0x2c], eax
mov eax, dword [edx - 0x28]
mov dword [ecx - 0x28], eax
mov eax, dword [edx - 0x24]
mov dword [ecx - 0x24], eax
mov eax, dword [edx - 0x20]
mov dword [ecx - 0x20], eax
mov eax, dword [edx - 0x1c]
mov dword [ecx - 0x1c], eax
movzx eax, byte [edx - 0x18]
mov byte [ecx - 0x18], al
movzx eax, byte [edx - 0x17]
mov byte [ecx - 0x17], al
cmp esi, ebx
jne 0x100d7907
mov ebx, dword [0x101275e8]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x80]
sub ebx, 0x20
mov dword [esp + 0x24], 0
mov dword [0x101275e8], ebx
mov ebx, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
push 3
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], eax
call ebx
mov edi, dword [0x101275e0]
mov esi, dword [esp + 0x24]
cmp esi, edi
je 0x100d7a24
test esi, esi
je 0x100d7a12
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100d79be
lea ecx, [esp + 0x24]
cmp eax, ecx
je 0x100d79b9
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100d79a6
cmp dword [esi], 0
jne 0x100d7a04
push str.ITERATOR_LIST_CORRUPTED_
push 0x100ec5a8
push 0
push 0x536
push 0x100ec5b0
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100d79e5
int3
push 0
push 0x536
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807includexmemory
push 0x100ec6dc
push str._ITERATOR_LIST_CORRUPTED__
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov dword [esp + 0x24], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
mov dword [edi + 4], eax
mov dword [esp + 0x24], edi
mov edi, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [esp + 0x80]
call edi
push 3
lea ecx, [esp + 0x88]
call ebx
lea ecx, [esp + 0x68]
call fcn.10027090
lea ecx, [esp + 0x84]
call edi
push 3
lea ecx, [esp + 0x8c]
call ebx
mov esi, dword [esp + 0x24]
test esi, esi
je 0x100d7adc
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100d7a88
nop dword [eax]
lea ecx, [esp + 0x24]
cmp eax, ecx
je 0x100d7a83
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100d7a70
cmp dword [esi], 0
jne 0x100d7ace
push str.ITERATOR_LIST_CORRUPTED_
push 0x100ec5a8
push 0
push 0x536
push 0x100ec5b0
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100d7aaf
int3
push 0
push 0x536
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807includexmemory
push 0x100ec6dc
push str._ITERATOR_LIST_CORRUPTED__
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov dword [esp + 0x24], 0
lea ecx, [esp + 0x88]
call edi
push 3
lea ecx, [esp + 0x90]
call ebx
lea ecx, [esp + 0x40]
call fcn.10027090
lea ecx, [esp + 0x8c]
call edi
push 3
lea ecx, [esp + 0x94]
call ebx
mov esi, dword [esp + 0x14]
test esi, esi
je 0x100d7b8c
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100d7b38
nop
lea ecx, [esp + 0x14]
cmp eax, ecx
je 0x100d7b33
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100d7b20
cmp dword [esi], 0
jne 0x100d7b7e
push str.ITERATOR_LIST_CORRUPTED_
push 0x100ec5a8
push 0
push 0x536
push 0x100ec5b0
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100d7b5f
int3
push 0
push 0x536
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807includexmemory
push 0x100ec6dc
push str._ITERATOR_LIST_CORRUPTED__
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov eax, dword [esp + 0x18]
mov dword [esi], eax
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x90]
call edi
mov edi, dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
movss xmm2, dword [esp + 0x78]
mov edx, dword [sym.imp.ucrtbased.dll__CrtDbgReport]
test ecx, ecx
jne 0x100d7690
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100dd730
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0x1c], 0
jne 0x100d7b9b
mov eax, dword [esp + 0x38]
dec eax
cmp dword [esp + 0x34], eax
je 0x100d7c44
cmp esi, dword [esp + 0x38]
jae 0x100d7b9b
mov eax, dword [0x101275e8]
sub eax, ecx
sar eax, 5
cmp esi, eax
jb 0x100d7c2f
push str.vector_subscript_out_of_range
push 0x100ec5a8
push 0
push 0x762
push 0x100ec970
push 2
call edx
add esp, 0x18
cmp eax, 1
jne 0x100d7c14
int3
push 0
push 0x762
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.40.33807include_vector
push 0x100ec6dc
push str._vector_subscript_out_of_range_
call edi
add esp, 0x14
mov eax, dword [0x101275e4]
mov ecx, dword [ebx + 0x18]
shl esi, 5
cmp ecx, dword [esi + eax + 0x18]
je 0x100d7b9b
movss xmm6, dword [ebx + 0xc]
movss xmm7, dword [ebx + 0x10]
movss xmm2, dword [ebx]
movss xmm3, dword [ebx + 4]
subss xmm2, xmm6
movss xmm0, dword [ebx + 0x14]
subss xmm3, xmm7
movss xmm4, dword [ebx + 8]
subss xmm4, xmm0
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x50], xmm6
movaps xmm1, xmm2
movss dword [esp + 0x54], xmm7
movaps xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm0, xmm1
call fcn.10026e60
addss xmm0, dword [0x100f6ad8]
movss xmm5, dword [0x100f6bd4]
movaps xmm1, xmm2
mulss xmm1, xmm2
divss xmm5, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm0, xmm1
call fcn.10026e60
mov ecx, dword [0x10125c4c]
movaps xmm1, xmm5
mulss xmm1, xmm2
push str.sprites_purplelaser1.vmt
mov eax, dword [ecx]
mulss xmm1, xmm0
mov eax, dword [eax + 8]
addss xmm1, xmm6
movss dword [esp + 0x5c], xmm1
movaps xmm1, xmm5
mulss xmm1, xmm3
mulss xmm5, xmm4
mulss xmm1, xmm0
mulss xmm5, xmm0
addss xmm1, xmm7
addss xmm5, dword [esp + 0x24]
movss dword [esp + 0x60], xmm1
movss dword [esp + 0x64], xmm5
call eax
cmp byte [ebx + 0x1d], 0
movss xmm0, dword [0x101102a0]
mov dword [esp + 0x3c], eax
movss dword [esp + 0x4c], xmm0
jne 0x100d7d4d
movzx edx, word [0x10110156]
mov eax, dword [0x10110154]
jmp 0x100d7d59
movzx edx, word [0x10110202]
mov eax, dword [0x10110200]
mov ecx, eax
movzx esi, al
shr ecx, 8
movzx edi, cl
mov ecx, dword [0x10125ca0]
push 1
movzx ebx, dl
call dword [0x10125da4]
mov dword [esp + 0x30], eax
test eax, eax
je 0x100d7b95
mov ecx, dword [0x10125c70]
mov edx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x10]
mov dword [eax + 0xc8], ecx
test edx, edx
js 0x100d7b95
mov ecx, dword [0x10125c4c]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, eax
test edx, edx
je 0x100d7efb
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
push edx
mov dword [eax + 0x30], 0
mov dword [eax + 0x150], ecx
mov dword [eax + 0x154], 0xffffffff
mov dword [eax + 0x158], 0
mov dword [eax + 0xf8], 0
mov dword [eax + 0xf4], 0
mov ecx, dword [0x10125c4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov edx, dword [esp + 0x30]
movss xmm1, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x5c]
movss xmm3, dword [esp + 0x50]
movss xmm4, dword [esp + 0x54]
movss xmm5, dword [esp + 0x20]
mov dword [edx + 0x15c], eax
mov eax, dword [0x10125c70]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x100f6b9c]
movss dword [edx + 0xc4], xmm0
movaps xmm0, xmm1
mov eax, dword [0x10125c70]
addss xmm0, dword [eax + 0x10]
mov dword [edx + 0xd8], 0
mov dword [edx + 0x34], 0
movss dword [edx + 0xdc], xmm1
movss xmm1, dword [esp + 0x58]
movss dword [edx + 0xc8], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [edx + 0x48], xmm1
subss xmm1, xmm3
movss dword [edx + 0x4c], xmm2
subss xmm2, xmm4
movss dword [edx + 0x50], xmm0
subss xmm0, xmm5
movss dword [edx + 0x3c], xmm3
movss dword [edx + 0x40], xmm4
movss dword [edx + 0x44], xmm5
movss dword [edx + 0xb4], xmm1
movss dword [edx + 0xb8], xmm2
movss dword [edx + 0xbc], xmm0
mov dword [edx + 0xcc], 0x40000000
mov dword [edx + 0xd0], 0x40000000
mov dword [edx + 0xd4], 0
mov dword [edx + 0xec], 0x437f0000
mov dword [edx + 0xf0], 0x3f000000
mov dword [edx + 0xfc], 2
jmp 0x100d7eff
mov edx, dword [esp + 0x30]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [edx + 0xf8], 0
mov dword [edx + 0xf4], 0
push edx
movss dword [edx + 0xe0], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [edx + 0xe4], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [edx + 0xe8], xmm0
mov ecx, dword [0x10125ca0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x10]
mov edi, dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov byte [eax + ebx + 0x1c], 1
jmp 0x100d7b9f