Function at 0x1400a0ca0
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
test byte [rcx + 0x314], 1
mov rbx, rcx
mov qword [rsp + 0xa8], rdx
je 0x1400a0f20
mov rax, qword [rcx + 0x10]
test byte [rax + 0x1b], 0x40
je 0x1400a0f20
mov eax, dword [rcx + 0x310]
mov edx, dword [rbx + 0x18]
test eax, eax
mov ecx, eax
je 0x1400a0f33
cmp eax, 1
jle 0x1400a0f3c
cmp edx, 7
jne 0x1400a0f3c
test byte [rbx + 0x4c], 2
je 0x1400a109e
cmp ecx, 0x40
jg 0x1400a10ba
mov rsi, qword [rbx + 0x28]
cmp qword [rsi + 0x60], 0
jne 0x1400a10fe
mov ecx, 0x1848
call fcn.14036dc50
test rax, rax
mov r14, rax
mov qword [rsi + 0x60], rax
je 0x1400a10c4
mov qword [rax], rbx
mov edx, 0x20
mov ecx, pe_nt_image_headers64
call fcn.140363b60
test rax, rax
mov qword [r14 + 0x10], rax
je 0x1400a0f61
mov rsi, qword [sym.imp.KERNEL32.dll_InitializeSRWLock]
lea rcx, [r14 + 0x18]
call rsi
lea rcx, [r14 + 0x1028]
call rsi
lea rcx, [r14 + 8]
call rsi
lea rcx, [r14 + 0x20]
mov rsi, qword [sym.imp.KERNEL32.dll_InitializeConditionVariable]
call rsi
lea rcx, [r14 + 0x1030]
call rsi
mov dword [r14 + 0x1840], 0
mfence
mov eax, dword [rbx + 0x310]
test eax, eax
jle 0x1400a0f10
lea rbp, [r14 + 0x1040]
xor r13d, r13d
lea r12, [rsp + 0x48]
jmp 0x1400a0e93
mov rcx, r9
call fcn.1403738f0
test eax, eax
js 0x1400a0f64
and dword [r15 + 0x318], 0xfffffffe
mov rdx, qword [rsp + 0xa8]
xor r8d, r8d
mov rcx, r12
mov dword [r15 + 0x310], 1
call fcn.140354a20
lea r8, [0x1403e9c02]
lea rdx, [0x1403e9c04]
xor r9d, r9d
mov rcx, r12
call fcn.140353f50
mov rdx, qword [rbx + 0x10]
mov rcx, r15
mov r8, r12
call fcn.14011f040
test eax, eax
mov rcx, r12
js 0x1400a1094
call fcn.1403549c0
mov rax, qword [r15 + 0x28]
cmp qword [rax + 0x60], 0
jne 0x1400a10ce
mov qword [rax + 0x60], r14
lea rax, [0x1400a0970]
mov qword [rbp + 0x10], r15
xor edx, edx
xor ecx, ecx
mov r9, rbp
mov qword [rbp + 8], rax
lea r8, [0x1400a0950]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.msvcrt.dll__beginthreadex]
test rax, rax
mov qword [rbp], rax
je 0x1400a0f64
add r13d, 1
add rbp, 0x20
cmp dword [rbx + 0x310], r13d
jle 0x1400a0f10
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x48], 0
call fcn.1400feb50
test rax, rax
mov r15, rax
je 0x1400a0f64
mov r9, qword [rax + 0x20]
mov rdi, rax
mov ecx, 0x84
mov rsi, rbx
mov rdx, rbx
rep movsq qword [rdi], qword [rsi]
mov rcx, rax
mov qword [rsp + 0x38], r9
call fcn.1403738f0
test eax, eax
js 0x1400a0f64
mov rax, qword [rbx + 0x10]
mov r9, qword [rsp + 0x38]
mov qword [r15 + 0x28], 0
cmp qword [rax + 0x50], 0
mov qword [r15 + 0x20], r9
mov rdx, qword [rbx + 0x20]
jne 0x1400a0dc0
movsxd r8, dword [rax + 0x68]
mov rcx, r9
call sub.msvcrt.dll_memcpy
jmp 0x1400a0dd0
mov dword [rbx + 0x318], 1
nop word [rax + rax]
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 7
je 0x1400a1064
cmp edx, 0x19
je 0x1400a0f90
cmp edx, 0x43
je 0x1400a0f90
mov eax, dword [rbx + 0x310]
mov ecx, eax
test ecx, ecx
je 0x1400a1040
cmp ecx, 1
jg 0x1400a0d05
jmp 0x1400a0f20
xor r13d, r13d
lea r8, str.ff_frame_thread_encoder_init_failed_n
mov edx, 0x10
mov rcx, rbx
mov dword [rbx + 0x310], r13d
call fcn.14036cf30
mov rcx, rbx
call fcn.1400a0b60
mov eax, 0xffffffff
jmp 0x1400a0f22
mov rcx, qword [rsp + 0xa8]
lea rdx, [0x1403e9b7b]
xor r8d, r8d
mov r9d, 1
call fcn.140353e40
test rax, rax
je 0x1400a1010
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400a1010
call sub.msvcrt.dll_atoi
test byte [rbx + 0x4d], 2
jne 0x1400a1016
test eax, eax
jle 0x1400a0ffe
mov rcx, qword [rsp + 0xa8]
lea rdx, str.non_deterministic
xor r8d, r8d
mov r9d, 1
call fcn.140353e40
test rax, rax
je 0x1400a1016
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400a1016
call sub.msvcrt.dll_atoi
test eax, eax
je 0x1400a1016
mov ecx, dword [rbx + 0x310]
jmp 0x1400a0f4e
test byte [rbx + 0x4d], 2
je 0x1400a0ffe
lea r8, str.Forcing_thread_count_to_1_for_huffyuv_encoding_with_first_pass_or_context_1_n
mov edx, 0x18
mov rcx, rbx
call fcn.14036cf30
mov dword [rbx + 0x310], 1
jmp 0x1400a0f20
call fcn.140353350
mov edx, 0x40
cmp eax, 0x40
cmovg eax, edx
cmp eax, 1
mov dword [rbx + 0x310], eax
jg 0x1400a0d0e
jmp 0x1400a0f20
test byte [rbx + 0x4c], 2
jne 0x1400a0f4c
lea r8, str.Forcing_thread_count_to_1_for_MJPEG_encoding__use__thread_type_slice_or_a_constant_quantizer_if_you_want_to_use_multiple_cpu_cores_n
mov edx, 0x30
mov rcx, rbx
call fcn.14036cf30
mov dword [rbx + 0x310], 1
mov edx, dword [rbx + 0x18]
jmp 0x1400a0f3c
call fcn.1403549c0
jmp 0x1400a0f64
lea r8, str.MJPEG_CBR_encoding_works_badly_with_frame_multi_threading__consider_using__threads_1___thread_type_slice_or_a_constant_quantizer._n
mov edx, 0x18
mov rcx, rbx
call fcn.14036cf30
mov edx, dword [rbx + 0x18]
jmp 0x1400a0f3c
mov eax, 0xffffffea
jmp 0x1400a0f22
mov eax, 0xfffffff4
jmp 0x1400a0f22
lea rax, str.libavcodec_frame_thread_encoder.c
lea r9, str._thread_avctx__internal__frame_thread_encoder
mov dword [rsp + 0x28], 0xe0
mov qword [rsp + 0x20], rax
lea r8, [0x1403e9bbf]
xor edx, edx
xor ecx, ecx
call fcn.14036cf30
call sub.msvcrt.dll_abort
lea rax, str.libavcodec_frame_thread_encoder.c
mov dword [rsp + 0x28], 0xb0
lea r9, str._avctx__internal__frame_thread_encoder
mov qword [rsp + 0x20], rax
jmp 0x1400a10e9