Function at 0x1001a7e0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100569d0
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x10072f40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3c], ecx
mov edi, dword [ebp + 8]
mov ebx, edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x24], eax
cmp dword [edi + 0x14], 8
jb 0x1001a828
mov ebx, dword [edi]
mov esi, dword [edi + 0x10]
test esi, esi
je 0x1001a89b
or ecx, 0xffffffff
lea eax, [esi - 1]
cmp eax, ecx
cmovb ecx, eax
cmp word [ebx + ecx*2], 0x5c
lea edx, [ebx + ecx*2]
je 0x1001a851
cmp edx, ebx
je 0x1001a89b
sub edx, 2
cmp word [edx], 0x5c
jne 0x1001a844
sub edx, ebx
sar edx, 1
cmp edx, 0xffffffff
je 0x1001a89b
cmp esi, edx
jb 0x1001ab83
mov eax, esi
mov ebx, 0x104
sub eax, edx
cmp eax, ebx
cmovb ebx, eax
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x1001a87a
mov eax, dword [edi]
lea ecx, [eax + edx*2]
sub esi, ebx
mov eax, esi
sub eax, edx
lea eax, [eax*2 + 2]
push eax
lea eax, [ecx + ebx*2]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [edi + 0x10], esi
push 1
push 0x1005e2c4
mov ecx, edi
call fcn.100330b0
mov ebx, dword [ebp - 0x24]
mov eax, ebx
cmp dword [ebx + 0x14], 8
jb 0x1001a8b6
mov eax, dword [ebx]
push dword [ebx + 0x10]
mov ecx, edi
push eax
call fcn.100330b0
mov dword [ebp - 4], 0
push 0x40
call fcn.1005021f
mov esi, eax
add esp, 4
mov dword [ebp - 0x44], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x1001a91c
push edi
mov ecx, esi
mov dword [ebp - 0x40], esi
call fcn.100121a0
mov byte [ebp - 4], 4
lea ecx, [esi + 0x18]
push ebx
mov dword [ebp - 0x34], ecx
call fcn.100121a0
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x3c]
mov dword [esi + 0x30], ebx
mov byte [ebp - 4], 8
mov dword [esi + 0x38], 0x1001a590
mov dword [esi + 0x3c], 0
mov byte [ebp - 4], 1
jmp 0x1001a921
mov ebx, dword [ebp - 0x3c]
xor esi, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x38], 1
mov byte [ebp - 4], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 0x12
mov eax, 1
mov dword [ebp - 0x38], eax
and eax, 0xfffffffe
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x28]
push eax
push 0
push esi
push 0x1000b790
push 0
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x18
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1001ab75
mov dword [ebp - 0x34], 0
mov dword [ebp - 4], 0x22
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x1001ab88
push eax
push dword [ebp - 0x2c]
call sub.MSVCP140.dll__Thrd_detach
add esp, 8
test eax, eax
jne 0x1001ab8f
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x28], eax
je 0x1001a9cc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
lea eax, [ebp - 0x48]
push eax
call fcn.10036560
mov eax, dword [ebp - 0x48]
add eax, 0x2a05f200
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
adc eax, 1
add ebx, 0x2f4
mov dword [ebp - 0x2c], ebx
push ebx
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x28], 0
call sub.MSVCP140.dll__Mtx_lock
add esp, 8
test eax, eax
jne 0x1001ab95
mov byte [ebp - 0x28], 1
mov dword [ebp - 4], 0x23
call sub.MSVCP140.dll__Query_perf_frequency
mov edi, eax
mov esi, edx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x34], esi
call sub.MSVCP140.dll__Query_perf_counter
cmp edi, 0x989680
jne 0x1001aa3e
test esi, esi
jne 0x1001aa3e
push esi
push 0x64
push edx
push eax
call fcn.10050aa0
jmp 0x1001aa84
push ebx
push esi
push edi
push edx
push eax
call fcn.100509c0
mov edi, ebx
pop ebx
nop
push 0
push 0x3b9aca00
push edx
push eax
mov esi, ecx
call fcn.10050aa0
push 0
push 0x3b9aca00
push edi
push esi
mov ebx, eax
mov dword [ebp - 0x40], edx
call fcn.10050aa0
push dword [ebp - 0x34]
push dword [ebp - 0x24]
push edx
push eax
call fcn.10050910
add eax, ebx
mov ebx, dword [ebp - 0x2c]
adc edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
cmp edx, esi
jg 0x1001ab47
mov ecx, dword [ebp - 0x30]
jl 0x1001aa9c
cmp eax, ecx
jae 0x1001ab47
mov ebx, ecx
sub ebx, eax
sbb esi, edx
mov dword [ebp - 0x24], esi
call sub.MSVCP140.dll__Xtime_get_ticks
push 0
push 0x64
push edx
push eax
call fcn.10050aa0
mov edi, edx
mov ecx, ebx
mov edx, dword [ebp - 0x24]
mov esi, eax
call fcn.10050c00
comisd xmm0, xmmword [0x10061708]
seta al
test al, al
je 0x1001aae0
add esi, 0xad160000
adc edi, 0x311cd
jmp 0x1001aae5
add esi, ebx
adc edi, dword [ebp - 0x24]
push 0
push 0x3b9aca00
push edi
push esi
call fcn.10050910
push 0xffffffffffffffff
push 0xc4653600
push edx
push eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call fcn.10050aa0
mov ebx, dword [ebp - 0x2c]
add esi, eax
push ebx
mov dword [ebp - 0x18], esi
call sub.MSVCP140.dll__Mtx_current_owns
add esp, 4
test eax, eax
je 0x1001aba1
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x3c]
add eax, 0x324
push ebx
push eax
call sub.MSVCP140.dll__Cnd_timedwait
mov ecx, eax
add esp, 0xc
sub ecx, 0
je 0x1001ab47
sub ecx, 2
jne 0x1001ab9b
jmp 0x1001aa12
mov dword [ebp - 4], 0xffffffff
push ebx
call sub.MSVCP140.dll__Mtx_unlock
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005078e
mov esp, ebp
pop ebp
ret 8
push 6
mov dword [ebp - 0x28], 0
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
call fcn.10032cc0
push 1
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
push 4
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3