Function at 0x10044680
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cc0c3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x78
mov eax, dword [0x100f0380]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x101c9f44]
xor edi, edi
mov ecx, dword [0x101c65f8]
inc eax
mov edx, dword [0x101c65f4]
mov esi, edx
mov dword [ebp - 0x6c], eax
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x68], 8
sar eax, 3
mov dword [ebp - 0x58], 5
mov dword [ebp - 0x4c], edi
test eax, eax
je 0x1004499e
sub ecx, esi
sar ecx, 3
cmp edi, ecx
jb 0x1004474c
push str.vector_subscript_out_of_range
push 0x100d7fd0
push 0
push 0x761
push 0x100d8270
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x10044727
int3
push 0
push 0x761
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.41.34120include_vector
push 0x100d8104
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [0x101c65f4]
add esp, 0x14
mov eax, dword [edx + edi*8 + 4]
test eax, eax
je 0x10044758
lock inc dword [eax + 4]
mov ecx, dword [edx + edi*8]
xorps xmm1, xmm1
mov eax, dword [0x101c649c]
mov edi, dword [edx + edi*8 + 4]
movss xmm0, dword [ecx + 0x20]
subss xmm0, dword [eax + 0x14]
comiss xmm1, xmm0
movss dword [ecx + 0x20], xmm0
jb 0x10044955
mov eax, dword [0x101c65f4]
lea ecx, [ebp - 0x1c]
push 3
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], eax
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ecx, dword [0x101c65f0]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x48], ecx
cmp esi, ecx
je 0x1004483d
test esi, esi
je 0x1004482e
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100447d9
lea edx, [ebp - 0x64]
cmp eax, edx
je 0x100447d4
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100447c2
cmp dword [esi], 0
jne 0x10044822
push str.ITERATOR_LIST_CORRUPTED_
push 0x100d7fd0
push 0
push 0x535
push 0x100d7fd8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x10044800
int3
push 0
push 0x535
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.41.34120includexmemory
push 0x100d8104
push str._ITERATOR_LIST_CORRUPTED__
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [ebp - 0x48]
add esp, 0x14
mov eax, dword [ebp - 0x60]
mov dword [esi], eax
mov dword [ebp - 0x64], 0
mov eax, dword [ecx + 4]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x64]
mov dword [ecx + 4], eax
mov dword [ebp - 0x64], ecx
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea eax, [ebp - 0x64]
mov dword [ebp - 0x28], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x30]
push eax
movq qword [ebp - 0x30], xmm0
call fcn.1001c430
mov eax, dword [ebp - 0x5c]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x4c]
mov dword [ebp - 0x28], eax
call fcn.10048250
sub esp, 0xc
lea eax, [ebp - 0x30]
mov esi, esp
mov ecx, esi
push eax
call fcn.1001c430
mov eax, dword [ebp - 0x28]
mov dword [esi + 8], eax
lea eax, [ebp - 0x44]
push eax
call fcn.10047750
push 3
lea ecx, [ebp - 0x18]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x44]
call fcn.1001c4c0
mov esi, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x18]
call esi
push 3
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x30]
call fcn.1001c4c0
lea ecx, [ebp - 0x20]
call esi
push 3
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov esi, dword [ebp - 0x64]
test esi, esi
je 0x1004494c
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
je 0x100448fa
lea ecx, [ebp - 0x64]
cmp eax, ecx
je 0x100448f5
mov esi, dword [esi]
add esi, 4
mov eax, dword [esi]
test eax, eax
jne 0x100448e3
cmp dword [esi], 0
jne 0x10044940
push str.ITERATOR_LIST_CORRUPTED_
push 0x100d7fd0
push 0
push 0x535
push 0x100d7fd8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x10044921
int3
push 0
push 0x535
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.41.34120includexmemory
push 0x100d8104
push str._ITERATOR_LIST_CORRUPTED__
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov eax, dword [ebp - 0x60]
mov dword [esi], eax
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
test edi, edi
je 0x1004497a
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x1004497a
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x1004497a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [0x101c65f8]
mov eax, ecx
mov edx, dword [0x101c65f4]
mov esi, edx
mov edi, dword [ebp - 0x4c]
sub eax, esi
inc edi
sar eax, 3
mov dword [ebp - 0x4c], edi
cmp edi, eax
jb 0x100446f7
cmp esi, ecx
je 0x10044d48
mov eax, ecx
xor edi, edi
sub eax, esi
mov dword [ebp - 0x4c], edi
sar eax, 3
test eax, eax
je 0x10044d48
nop word [eax + eax]
sub ecx, esi
xorps xmm0, xmm0
sar ecx, 3
movlpd qword [ebp - 0x38], xmm0
cmp edi, ecx
jb 0x10044a1d
push str.vector_subscript_out_of_range
push 0x100d7fd0
push 0
push 0x761
push 0x100d8270
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x100449f8
int3
push 0
push 0x761
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.41.34120include_vector
push 0x100d8104
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [0x101c65f4]
add esp, 0x14
mov eax, dword [edx + edi*8 + 4]
test eax, eax
je 0x10044a29
lock inc dword [eax + 4]
mov esi, dword [ebp - 0x4c]
mov edi, dword [edx + edi*8]
mov dword [ebp - 0x38], edi
mov esi, dword [edx + esi*8 + 4]
mov dword [ebp - 0x34], esi
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x54], 0xf9f9f9f9
mov byte [ebp - 0x50], 0xdc
nop dword [eax]
xor byte [ebp + ecx - 0x54], 0xdc
inc ecx
cmp ecx, 5
jb 0x10044a50
push ecx
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
call fcn.100360c0
cmp eax, 0xffffffff
je 0x10044ad9
mov word [ebp - 0x18], 0xdcf9
xor ecx, ecx
xor byte [ebp + ecx - 0x18], 0xdc
inc ecx
cmp ecx, 2
jb 0x10044a74
push ecx
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.100360c0
mov edi, dword [edi + 0x14]
mov edx, eax
cmp edi, edx
jb 0x10044d66
mov ecx, edi
mov eax, 3
sub ecx, edx
cmp ecx, eax
cmovb eax, ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x18], 0xf
lea ecx, [eax + 4]
jbe 0x10044ab7
mov ecx, dword [ecx]
sub edi, dword [ebp - 0x48]
add ecx, edx
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x48]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140D.dll_memmove
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov dword [eax + 0x14], edi
mov edi, eax
mov eax, dword [edi + 0x1c]
movss xmm1, dword [edi + 0x20]
mov dword [ebp - 0x48], eax
mov eax, dword [0x101c649c]
movss dword [ebp - 0x24], xmm1
movss xmm0, dword [eax + 0x14]
subss xmm0, xmm1
call fcn.10041cc0
push edi
lea eax, [ebp - 0x2c]
movss dword [ebp - 0x20], xmm0
push eax
mov ecx, 0x101c9f3c
call fcn.100b4bf0
push 6
xorps xmm1, xmm1
mov dword [ebp - 0x88], 0
push str._sup_
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x84], xmm1
mov dword [ebp - 0x70], 0
call fcn.100288d0
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x40]
mov ecx, 0x101c9f3c
push eax
call fcn.100b4bf0
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0
call fcn.10028230
mov eax, dword [ebp - 0x88]
push 8
push eax
mov dword [ebp - 0x88], 0
call fcn.100c8bb0
movss xmm3, dword [ebp - 0x24]
add esp, 8
movss xmm0, dword [0x100e2b78]
comiss xmm0, xmm3
jbe 0x10044c0c
xorps xmm1, xmm1
comiss xmm1, xmm3
jbe 0x10044ba6
xorps xmm3, xmm3
jmp 0x10044baa
minss xmm3, xmm0
cmp dword [ebp - 0x4c], 0
addss xmm3, xmm3
movaps xmm0, xmm3
mulss xmm0, dword [0x100e2dc0]
cvttss2si eax, xmm0
mov byte [ebp - 0x45], al
jne 0x10044c52
movss xmm0, dword [0x100e2b30]
comiss xmm0, xmm3
jbe 0x10044c52
mulss xmm3, dword [0x100e2c68]
movd xmm0, dword [ebp - 0x6c]
movss xmm1, dword [0x100e2bb0]
movd xmm2, dword [ebp - 0x58]
subss xmm1, xmm3
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [ebp - 0x58], eax
jmp 0x10044c52
movss xmm0, dword [ebp - 0x20]
movss xmm2, dword [0x100e2c7c]
comiss xmm0, xmm2
mov byte [ebp - 0x45], 0xff
jbe 0x10044c52
mov eax, dword [ebp - 0x40]
subss xmm3, xmm2
add eax, dword [ebp - 0x2c]
movss xmm0, dword [0x100e2c80]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
mulss xmm1, dword [0x100e2c64]
subss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x68], eax
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x88], 0
push str._sup_
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x70], 0
call fcn.100288d0
push 0
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 2
push eax
mov dword [ebp - 0x1c], 0xff7a7aff
mov ecx, 0x101c9f3c
push dword [ebp - 0x1c]
push dword [ebp - 0x58]
push dword [ebp - 0x68]
call fcn.100b48f0
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0
call fcn.10028230
mov eax, dword [ebp - 0x88]
push 8
push eax
mov dword [ebp - 0x88], 0
call fcn.100c8bb0
mov eax, dword [ebp - 0x40]
add esp, 8
add eax, dword [ebp - 0x68]
mov ecx, 0x101c9f3c
push 0
push edi
push dword [ebp - 0x48]
mov edi, dword [ebp - 0x58]
push edi
push eax
call fcn.100b48f0
add edi, dword [ebp - 0x6c]
mov dword [ebp - 0x58], edi
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x10044d24
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x10044d24
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x10044d24
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [0x101c65f8]
mov eax, ecx
mov edx, dword [0x101c65f4]
mov esi, edx
mov edi, dword [ebp - 0x4c]
sub eax, esi
inc edi
sar eax, 3
mov dword [ebp - 0x4c], edi
cmp edi, eax
jb 0x100449c0
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.100c8320
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.10028480
int3