Function at 0x4229c0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43fe26
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x45b00c]
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 0x422a63
mov edi, ebx
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x422a52
sub edi, ecx
sar edi, 1
jmp 0x422a77
mov edi, dword [edx + 0x24]
test edi, edi
jne 0x422a71
mov ebx, 0x445b48
jmp 0x422a77
mov ebx, dword [edx + 0x1c]
shr edi, 1
dec edi
call sym.whitetool.exe_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 0x422aa7
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 0x422abb
push eax
mov ecx, esi
call fcn.00428ab0
mov eax, dword [esi + 0xc]
jmp 0x422b10
test eax, eax
je 0x422b10
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 0x422afc
mov ecx, 0x45bdd8
call fcn.004297c0
test eax, eax
jne 0x422b00
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 0x422b4f
test ecx, ecx
jne 0x422b32
mov dword [ebp - 0x10], ecx
jmp 0x422b38
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
call sym.whitetool.exe_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 0x422b73
test ecx, ecx
jne 0x422b58
mov dword [ebp - 0x10], ecx
jmp 0x422b5e
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
call sym.whitetool.exe_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 0x422b85
mov eax, dword [ebp + 8]
cmp dword [eax], ecx
setne cl
add ecx, edx
push ecx
mov ecx, esi
call fcn.00428ab0
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