Function at 0x14007fc00
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
xor r12d, r12d
mov rdi, rcx
mov r13d, 1
test dl, dl
jne 0x14007fca1
cmp byte [0x140167c3e], r12b
je 0x14007fca1
mov r14, qword [0x140167c48]
test r14, r14
je 0x14007fca1
test rcx, rcx
je 0x14007fca1
cmp byte [rcx], r12b
je 0x14007fca1
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rcx + rbx], r12b
jne 0x14007fc4f
mov esi, dword [r14 + 0x10]
cmp rbx, rsi
ja 0x14007fca1
sub esi, ebx
mov r14, qword [r14 + 8]
mov r15b, byte [rcx]
js 0x14007fca1
lea rbp, [r14 - 1]
mov al, byte [r14]
add rbp, r13
add r14, r13
sub esi, r13d
cmp r15b, al
jne 0x14007fc9d
cmp rdi, rbp
je 0x14007fd02
test rbp, rbp
je 0x14007fc9d
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
call fcn.1400fd8f0
test eax, eax
je 0x14007fd02
test esi, esi
jns 0x14007fc70
cmp byte [0x140167c3c], r12b
mov sil, r12b
jne 0x14007fcc0
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x14007fcc0
cmp byte [0x140167c27], r12b
je 0x14007fcc9
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp byte [0x140167c3d], r12b
jne 0x14007fe62
cmp byte [0x140167c27], r12b
je 0x14007fd07
mov rax, qword [0x14015f408]
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x14007fe62
xor edx, edx
mov rcx, rdi
call fcn.14007faa0
jmp 0x14007fe62
mov sil, r13b
jmp 0x14007fcc9
lea rcx, [0x1401683a8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lock add dword [0x140167c58], r13d
mov rcx, qword [0x140167c48]
test rcx, rcx
jne 0x14007fd94
mov ecx, 0x10
call fcn.1400ebc6c
mov rbx, rax
xor r8d, r8d
lea rax, [0x140136ba0]
mov edx, 0x20000
xor ecx, ecx
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov ecx, 0x40
mov qword [0x140167c50], rbx
mov qword [rbx + 8], rax
call fcn.1400ebc6c
mov rcx, rax
mov qword [0x140167c48], rcx
mov dword [rax + 0x38], r12d
mov rax, qword [0x140167c50]
mov qword [rcx], rax
lea rax, [rcx + 0x18]
mov qword [rcx + 8], rax
mov byte [rax], r12b
mov dword [rcx + 0x10], r12d
mov dword [rcx + 0x14], 0x8001
jmp 0x14007fda9
cmp dword [rcx + 0x10], 0xfff80
jle 0x14007fda9
call fcn.14007d550
mov rcx, qword [0x140167c48]
test rdi, rdi
je 0x14007fdbd
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], r12b
jne 0x14007fdb2
jmp 0x14007fdc0
mov rbx, r12
test sil, sil
jne 0x14007fe02
mov r8, rbx
mov rdx, rdi
call fcn.14007d6e8
cmp byte [0x140167c26], r12b
je 0x14007fe02
mov ecx, r13d
call fcn.1400f2ae8
mov r9, rax
mov r8, rbx
mov rdx, r13
mov rcx, rdi
call fcn.1401056bc
mov ecx, r13d
call fcn.1400f2ae8
mov rcx, rax
call fcn.1401014e4
mov rcx, qword [0x140167c40]
test rcx, rcx
je 0x14007fe43
lea rdx, [0x140133098]
call fcn.1400f29bc
mov rsi, rax
test rax, rax
je 0x14007fe43
mov r9, rax
mov r8, rbx
mov rdx, r13
mov rcx, rdi
call fcn.1401056bc
mov rcx, rsi
call fcn.1401014e4
mov rcx, rsi
call fcn.1400f78d0
mov rdx, rbx
mov rcx, rdi
call fcn.14007faa0
lea rcx, [0x1401683a8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lock dec dword [0x140167c58]
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret