Function at 0x140010930
Capabilities:
Create thread

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movzx eax, byte [rsp + 0x80]
movsxd rbx, edx
mov r14d, r9d
mov dword [rsp + 0x28], eax
mov dword [r11 - 0x38], r9d
mov edi, r8d
mov r9d, r8d
mov r12, rcx
lea rdx, str.CRecorderMgr::CreateRecorders:_dwStartIndex_d_dwCount_d_recorderType_d_fMCEConfiguredOnly_d
mov r8d, ebx
mov ecx, 8
call fcn.140001110
xor ebp, ebp
test edi, edi
je 0x14001f2bd
lea eax, [rbx + rdi]
cmp ebx, eax
jae 0x140010b3e
mov r13, rbx
shl r13, 3
sub eax, ebx
mov r15d, eax
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [r12 + 0x50]
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rsi, qword [r13 + rbx]
xor edi, edi
cmp byte [rsp + 0x80], dil
je 0x1400109e0
mov rdx, qword [rsi + 0x30]
mov rcx, r12
call fcn.140008e94
cmp eax, edi
je 0x14001f2d3
cmp r14d, edi
jne 0x14001f2f0
cmp dword [rsi + 0x5c], edi
jne 0x14001f30c
cmp dword [rsi + 4], edi
jge 0x14001f31d
cmp dword [rsi + 4], 0x80070037
je 0x14001f326
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [r12 + 0x50]
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11, qword [r13 + rbx]
cmp dword [r11 + 0x5c], edi
jne 0x14001f32f
test byte [rsi + 0x19c], 1
jne 0x14001f39c
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rcx, qword [rsi + 0x18]
mov rbx, rax
cmp rcx, rdi
jne 0x14001f3e4
mov qword [rsi + 0x18], rbx
cmp rbx, rdi
je 0x14001f3f0
mov rcx, qword [r12 + 0x120]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov r8d, dword [rsi]
lea rdx, str.CRecorderMgr::CreateRecorders__d_:_resetting_wait_for_recorders
mov ecx, 8
call fcn.140001110
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rcx, qword [rsi + 0x20]
mov rbx, rax
cmp rcx, rdi
jne 0x14001f415
mov qword [rsi + 0x20], rbx
cmp rbx, rdi
je 0x14001f421
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rcx, qword [rsi + 0x240]
mov rbx, rax
cmp rcx, rdi
jne 0x14001f468
mov qword [rsi + 0x240], rbx
cmp rbx, rdi
je 0x14001f474
lea rax, [rsi + 8]
lea r8, [0x140010b70]
mov r9, rsi
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbx, rax
cmp rax, rdi
je 0x14001f4ce
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add r13, 8
sub r15, 1
jne 0x1400109a0
mov eax, ebp
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rdx, str.CRecorderMgr::CreateRecorders:_no_recorders
lea ecx, [rbp + 8]
call fcn.140001110
xor eax, eax
jmp 0x140010b40
lea rdx, str.CRecorderMgr::CreateRecorders:_skipping__s_not_configured_for_MCE
mov r8, qword [rsi + 0x80]
mov ecx, 4
call fcn.140001110
jmp 0x140010b30
cmp r14d, 1
jne 0x1400109f2
cmp dword [rsi + 0x5c], edi
jne 0x1400109f2
lea rcx, str.CRecorderMgr::CreateRecorders:__found_a_kernel_tuner__want_network__skipping
jmp 0x14001f313
lea rcx, str.CRecorderMgr::CreateRecorders:__found_a_network_tuner__want_kernel__skipping
call fcn.140003a60
jmp 0x140010b30
lea rdx, str.CRecorderMgr::CreateRecorders:_skipping__s_already_created
jmp 0x14001f2da
lea rdx, str.CRecorderMgr::CreateRecorders:_skipping__s_device_does_not_exist
jmp 0x14001f2da
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [r12 + 0x50]
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11, qword [r13 + rbx]
lea rcx, [r12 + 0x58]
cmp dword [r11 + 0x74], 2
jne 0x14001f3a8
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [r12 + 0x50]
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11, qword [r13 + rbx]
lea rdx, str.CRecorderMgr::CreateRecorders:_building__s_network_device___state_is_ts_NetworkTunerPresent__changing_it_to_ts_NetworkTunerBuildInProgress
mov dword [r11 + 0x74], 3
mov r8, qword [rsi + 0x80]
mov ecx, 4
call fcn.140001110
nop
jmp 0x140010a32
lea rdx, str.CRecorderMgr::CreateRecorders:_skipping__s_disabled
jmp 0x14001f2da
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [r12 + 0x50]
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r11, qword [r13 + rbx]
lea rdx, str.CRecorderMgr::CreateRecorders:_skipping__s_network_device___state_is_not_ts_NetworkTunerPresent__d_.
mov r9d, dword [r11 + 0x74]
mov ecx, 4
mov r8, qword [rsi + 0x80]
call fcn.140001110
jmp 0x140010b30
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140010a61
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.CRecorderMgr::CreateRecorders:_error__s__0x_x
mov ecx, 1
movzx ebp, ax
or ebp, 0x80070000
cmp eax, edi
cmovle ebp, eax
mov r9d, ebp
jmp 0x14001f3d3
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140010ab2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, qword [rsi + 0x80]
lea rdx, str.CRecorderMgr::CreateRecorders:_error__s__0x_x
movzx ebp, ax
mov ecx, 1
or ebp, 0x80070000
cmp eax, edi
cmovle ebp, eax
mov r9d, ebp
call fcn.140001110
mov rcx, qword [rsi + 0x18]
cmp rcx, rdi
je 0x14001f45f
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsi + 0x18], rdi
jmp 0x140010b30
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140010ae2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, qword [rsi + 0x80]
lea rdx, str.CRecorderMgr::CreateRecorders:_error__s__0x_x
movzx ebp, ax
mov ecx, 1
or ebp, 0x80070000
cmp eax, edi
cmovle ebp, eax
mov r9d, ebp
call fcn.140001110
mov rcx, qword [rsi + 0x18]
cmp rcx, rdi
je 0x14001f4b2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsi + 0x18], rdi
mov rcx, qword [rsi + 0x20]
cmp rcx, rdi
je 0x14001f4c5
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsi + 0x20], rdi
jmp 0x140010b30
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, qword [rsi + 0x80]
lea rdx, str.CRecorderMgr::CreateRecorders:_error__s__0x_x
movzx ebp, ax
mov ecx, 1
or ebp, 0x80070000
cmp eax, edi
cmovle ebp, eax
mov r9d, ebp
mov dword [rsi + 4], ebp
call fcn.140001110
mov rcx, qword [rsi + 0x20]
cmp rcx, rdi
je 0x14001f50f
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsi + 0x20], rdi
jmp 0x14001f450