Function at 0x18012bee0
Capabilities:
Check for software breakpoints

Disassembly:
push rbp
push r14
mov rbp, qword [rcx + 0x18]
mov r8, rcx
mov ecx, dword [rcx + 0x20]
xor r14d, r14d
xor r10d, r10d
mov r9, rbp
test ecx, ecx
jle 0x18012c0a9
mov qword [rsp + 0x20], rsi
mov r11, rbp
mov qword [rsp + 0x30], r15
lea r15, [0x180000000]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x28], rdi
nop dword [rax]
mov esi, ecx
mov r9, r11
cmp r10d, 0xf
jae 0x18012c095
movzx ebx, byte [r11]
mov edi, ebx
lea eax, [rbx - 0x26]
cmp eax, 0xcd
ja case.0x18012bf59.49
cdqe
movzx eax, byte [r15 + rax + 0x12c238]
mov ecx, dword [r15 + rax*4 + 0x12c208]
add rcx, r15
jmp rcx
or dword [rdx], 0x2000
mov ecx, r10d
movzx eax, word [rdx + 0x14]
or word [rdx + 0xc], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0x14], ax
jmp 0x18012c072
or dword [rdx], 0x10
movzx eax, word [rdx + 0x10]
mov ecx, r10d
or word [rdx + 0xc], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0x10], ax
jmp 0x18012c072
or dword [rdx], 0x20
jmp 0x18012bf80
or dword [rdx], 0x40
jmp 0x18012bf80
and dword [rdx], 0xffffe0ff
or dword [rdx], 0x80
movzx eax, word [rdx + 0x12]
mov ecx, r10d
or word [rdx + 0xc], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0x12], ax
jmp 0x18012c072
and dword [rdx], 0xffffe17f
or dword [rdx], 0x100
jmp 0x18012bfb2
and dword [rdx], 0xffffe27f
or dword [rdx], 0x200
jmp 0x18012bfb2
and dword [rdx], 0xffffe47f
or dword [rdx], 0x400
jmp 0x18012bfb2
and dword [rdx], 0xffffe87f
or dword [rdx], 0x800
jmp 0x18012bfb2
and dword [rdx], 0xfffff07f
or dword [rdx], 0x1000
jmp 0x18012bfb2
or dword [rdx], 0x4000
mov ecx, r10d
movzx eax, word [rdx + 0x16]
or word [rdx + 0xc], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0x16], ax
jmp 0x18012c072
cmp dword [r8 + 0x24], 2
mov ecx, esi
jne 0x18012c095
and bl, 0xf0
cmp bl, 0x40
jne 0x18012c095
or dword [rdx], 0x2000000
and edi, 0xf
mov r14, qword [r8 + 0x18]
mov ecx, r10d
mov dword [rdx + 0x24], edi
mov dword [rdx + 0x18], 1
movzx eax, word [rdx + 0xe]
or word [rdx + 0xc], ax
mov eax, 1
shl ax, cl
mov word [rdx + 0xe], ax
mov r9, qword [r8 + 0x18]
inc r10d
mov ecx, dword [r8 + 0x20]
inc r9
dec ecx
mov qword [r8 + 0x18], r9
mov dword [r8 + 0x20], ecx
mov r11, r9
test ecx, ecx
jg 0x18012bf20
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov r15, qword [rsp + 0x30]
mov r11d, ecx
mov r10, r9
cmp ecx, 2
jl 0x18012c114
cmp byte [r9], 0xc5
jne 0x18012c114
mov rax, r9
sub rax, rbp
cmp rax, 0xd
jg 0x18012c114
cmp dword [r8 + 0x24], 2
lea rax, [r9 + 1]
je 0x18012c0d6
cmp byte [rax], 0xc0
jb 0x18012c114
or dword [rdx], 0x20000000
mov qword [rdx + 0x28], rax
mov dword [rdx + 0x18], 2
movzx ecx, byte [rax]
test cl, cl
js 0x18012c0f9
cmp dword [r8 + 0x24], 2
jne 0x18012c0f9
or dword [rdx + 0x24], 4
test cl, 4
je 0x18012c102
or dword [rdx + 0x24], 0x10
add qword [r8 + 0x18], 2
add dword [r8 + 0x20], 0xfffffffe
mov r11d, dword [r8 + 0x20]
mov r10, qword [r8 + 0x18]
mov r9, r10
cmp r11d, 3
jl 0x18012c1a4
cmp byte [r10], 0xc4
jne 0x18012c1a4
mov rax, r10
sub rax, rbp
cmp rax, 0xc
jg 0x18012c1a4
mov eax, dword [rdx]
bt eax, 0x1d
jb 0x18012c1a4
cmp dword [r8 + 0x24], 2
lea rcx, [r10 + 1]
je 0x18012c14b
cmp byte [rcx], 0xc0
jb 0x18012c1a4
bts eax, 0x1d
mov qword [rdx + 0x28], rcx
mov dword [rdx], eax
mov dword [rdx + 0x18], 3
movzx eax, byte [rcx]
not eax
sar eax, 5
and eax, 7
or eax, dword [rdx + 0x24]
mov dword [rdx + 0x24], eax
movzx r9d, byte [rcx + 1]
test r9b, 4
je 0x18012c17e
or eax, 0x10
mov dword [rdx + 0x24], eax
test r9b, r9b
jns 0x18012c189
or eax, 8
mov dword [rdx + 0x24], eax
cmp dword [r8 + 0x24], 2
je 0x18012c196
and eax, 0xfffffff0
mov dword [rdx + 0x24], eax
add qword [r8 + 0x18], 3
add dword [r8 + 0x20], 0xfffffffd
mov r9, qword [r8 + 0x18]
cmp dword [r8 + 0x24], 2
jne 0x18012c1f4
mov r10d, dword [rdx]
mov ecx, r10d
bt r10d, 0x19
jae 0x18012c1dc
lea rax, [r9 - 1]
cmp r14, rax
je 0x18012c1dc
btr ecx, 0x19
cmp dword [rdx + 0x18], 1
mov dword [rdx], ecx
jne 0x18012c1d4
mov dword [rdx + 0x18], 0
movzx eax, word [rdx + 0xe]
or word [rdx + 0xc], ax
test ecx, 0x780
je 0x18012c1f4
and ecx, 0xfffff87f
mov dword [rdx], ecx
movzx eax, word [rdx + 0x12]
or word [rdx + 0xc], ax
movzx eax, byte [r8 + 0x18]
sub al, bpl
movzx eax, al
mov dword [rdx + 8], eax
pop r14
pop rbp
ret