Function at 0x10012700
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100249f6
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x1002f00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov dword [esi], vtable.CVolObject.0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 4], 1
mov dword [esi], vtable.CVolMem.0
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0x40
mov dword [ebp - 4], 0
mov ebx, dword [edx + 0xc]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x100127a3
mov edi, ebx
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x10012792
sub edi, ecx
sar edi, 1
jmp 0x100127b7
mov edi, dword [edx + 0x24]
test edi, edi
jne 0x100127b1
mov ebx, 0x100269b0
jmp 0x100127b7
mov ebx, dword [edx + 0x1c]
shr edi, 1
dec edi
call sym.DLL.dll_class_simdutf::internal::atomic_ptr_class_simdutf::implementation_const______cdecl_simdutf::get_active_implementation_void_
mov ecx, dword [eax]
nop
mov eax, dword [ecx]
push edi
push ebx
call dword [eax + 0xcc]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x100127e7
mov dword [esi + 0x14], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc eax
cmp dword [esi + 0xc], 0
je 0x100127fb
push eax
mov ecx, esi
call fcn.10018b60
mov eax, dword [esi + 0xc]
jmp 0x10012850
test eax, eax
je 0x10012850
mov ecx, dword [esi + 0x18]
mov edx, 0x40
test ecx, ecx
cmovle ecx, edx
cdq
idiv ecx
mov eax, dword [ebp - 0x10]
inc eax
sub ecx, edx
add ecx, eax
mov eax, dword [esi]
mov dword [ebp - 0x18], ecx
push ecx
mov eax, dword [eax]
cmp eax, method.CWString.virtual_0
jne 0x1001283c
mov ecx, 0x1002fd08
call fcn.10019650
test eax, eax
jne 0x10012840
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], ecx
push dword [esi + 0x14]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esi + 0x14]
cmp dword [eax], 0
je 0x1001288f
test ecx, ecx
jne 0x10012872
mov dword [ebp - 0x10], ecx
jmp 0x10012878
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
call sym.DLL.dll_class_simdutf::internal::atomic_ptr_class_simdutf::implementation_const______cdecl_simdutf::get_active_implementation_void_
mov ecx, dword [eax]
nop
push dword [ebp - 0x10]
mov eax, dword [ecx]
push edi
push ebx
call dword [eax + 0x9c]
jmp 0x100128b3
test ecx, ecx
jne 0x10012898
mov dword [ebp - 0x10], ecx
jmp 0x1001289e
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
call sym.DLL.dll_class_simdutf::internal::atomic_ptr_class_simdutf::implementation_const______cdecl_simdutf::get_active_implementation_void_
mov ecx, dword [eax]
nop
push dword [ebp - 0x10]
mov eax, dword [ecx]
push edi
push ebx
call dword [eax + 0xac]
mov edx, eax
xor ecx, ecx
test edx, edx
je 0x100128c5
mov eax, dword [ebp + 8]
cmp dword [eax], ecx
setne cl
add ecx, edx
push ecx
mov ecx, esi
call fcn.10018b60
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret